在 BigQuery 中将 TIME 转换为 INT

问题描述 投票:0回答:2

我的一个列将作为 TIME 类型出现,但我希望它作为 INT 类型出现,因为这些值在 Tableau 中不能很好地转换。

我尝试像这样运行 CAST 函数:

CAST(ride_length AS INT) AS ride_length,

有人在上一个问题中提出了以下建议:

SELECT (DATEPART(hour, Col1) * 3600) + (DATEPART(minute, Col1) * 60) + DATEPART(second, Col1) as SecondsFromMidnight FROM T1;

DATEPART 在 BigQuery 中不起作用,并且我没有看到适用于文档的 DATE 函数。

sql google-bigquery
2个回答
0
投票

TIME
转换为秒:

SELECT (EXTRACT(HOUR FROM TIME(ride_length)) * 3600) + (EXTRACT(MINUTE FROM TIME(ride_length))  * 60) + EXTRACT(SECOND FROM TIME(ride_length)) as SecondsFromMidnight FROM T1;

更多信息:https://cloud.google.com/bigquery/docs/reference/standard-sql/time_functions#extract


0
投票

代替

CAST
使用这个:

TIME_TO_SEC(ride_length) AS ride_length

将 TIME 转换为秒。

© www.soinside.com 2019 - 2024. All rights reserved.