Conversion rules in Google说TIMESTAMPS
可以成为DATETIME
。
以下代码可将TIMESTAMP
转换为DATE
。
SELECT CAST( DATE(CURRENT_TIMESTAMP()) AS DATE)
我们可以在标准SQL中使用它来获得DATETIME
,但是却浪费了时间:
SELECT CAST ( CAST( DATE(CURRENT_TIMESTAMP()) AS DATE) AS DATETIME )
我们如何在不浪费时间的情况下使TIMESTAMP
成为DATETIME
(即类似的东西)?
SELECT CAST( CURRENT_TIMESTAMP() AS DATETIME )
我们如何在BigQuery的旧版SQL和标准SQL中做到这一点?
注意:我们刚刚发现示例CAST在标准SQL上运行(看来我们的查询系统使用的是旧版SQL)。
答案 0 :(得分:2)
您可以简单地使用CAST(...作为DATETIME),如以下示例所示
#standardSQL
WITH `project.dataset.table` AS (
SELECT CURRENT_TIMESTAMP() ts_as_timestamp
)
SELECT ts_as_timestamp, CAST(ts_as_timestamp AS DATETIME) ts_as_datetime
FROM `project.dataset.table`
有结果
Row ts_as_timestamp ts_as_datetime
1 2019-06-13 19:22:42.839108 UTC 2019-06-13T19:22:42.839108
对于旧版SQL
#legacySQL
SELECT ts_as_timestamp, CAST(STRING(ts_as_timestamp) AS DATETIME) ts_as_datetime
FROM (SELECT CURRENT_TIMESTAMP() ts_as_timestamp)
具有相同的输出