BigQuery TIMESTAMP到DATETIME

时间:2019-06-13 07:23:34

标签: google-bigquery

Conversion rules in GoogleTIMESTAMPS可以成为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)。

1 个答案:

答案 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)  

具有相同的输出