无法在Bigquery中将时间列从字符串更改为时间



我在Excel中创建了一个列HH:MM:SS,但当我将其移动到Bigquery时,它保留了格式,但改为字符串。我需要把它改回来,这样我才能找到平均值。

一开始我只是试着改变桌子:

ALTER TABLE `circular-nova-330422.trip_data_Cyclist.trip_data-12mths`
ALTER COLUMN ride_length SET DATA TYPE TIME;

但是得到了这个错误:

ALTER TABLE ALTER COLUMN SET DATA TYPE要求现有列类型(STRING(可分配给新类型(TIME(

我在这里发现了一个问题,说我应该使用parse_time,但当我这样做时,我只得到了这个:

SELECT PARSE_TIME("%H:%M:%S", ride_length)
FROM `circular-nova-330422.trip_data_Cyclist.trip_data-12mths`;

无法解析输入字符串";

我做错了什么,有其他方法可以永久更改数据类型吗?

这将解析00:00:00到23:59:59 之间的任何时间戳

这是您的ride_length值的格式吗?

还有哪些行的值可能是空字符串吗?

选择PARSE_TIME("%H:%M:%S","(将导致您在上面发布的错误。

要解决此问题,您可以尝试

SELECT PARSE_TIME("%H:%M:%S", nullif(ride_length, ""))
FROM `circular-nova-330422.trip_data_Cyclist.trip_data-12mths`;

最新更新