Google 中的转换规则说TIMESTAMPS可以变成DATETIME。
以下代码可将 a 转换TIMESTAMP为 a DATE。
SELECT CAST( DATE(CURRENT_TIMESTAMP()) AS DATE)
Run Code Online (Sandbox Code Playgroud)
我们可以DATETIME在标准 SQL 中使用它,但我们在这个过程中浪费了时间:
SELECT CAST ( CAST( DATE(CURRENT_TIMESTAMP()) AS DATE) AS DATETIME )
Run Code Online (Sandbox Code Playgroud)
我们怎样才能在不浪费时间的情况下TIMESTAMP成为a(即类似这样的事情)?DATETIME
SELECT CAST( CURRENT_TIMESTAMP() AS DATETIME )
Run Code Online (Sandbox Code Playgroud)
我们如何在 BigQuery 上的旧版 SQL 和标准 SQL 中执行此操作?
注意:我们刚刚发现我们的示例 CAST 适用于标准 SQL(看来我们的查询系统正在使用旧版 SQL)。
您可以简单地使用 CAST(... as 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`
Run Code Online (Sandbox Code Playgroud)
有结果
Row ts_as_timestamp ts_as_datetime
1 2019-06-13 19:22:42.839108 UTC 2019-06-13T19:22:42.839108
Run Code Online (Sandbox Code Playgroud)
对于旧版 SQL
#legacySQL
SELECT ts_as_timestamp, CAST(STRING(ts_as_timestamp) AS DATETIME) ts_as_datetime
FROM (SELECT CURRENT_TIMESTAMP() ts_as_timestamp)
Run Code Online (Sandbox Code Playgroud)
具有相同的输出