BigQuery TIMESTAMP TO DATETIME - PullRequest
       12

BigQuery TIMESTAMP TO DATETIME

0 голосов
/ 13 июня 2019

Правила конвертации в Google говорят, что TIMESTAMPS может стать DATETIME.

Следующий код работает, чтобы превратить TIMESTAMP в DATE.

SELECT CAST( DATE(CURRENT_TIMESTAMP()) AS DATE)

Мы можем получить DATETIME, используя это в стандартном SQL, но мы теряем время в процессе:

SELECT  CAST ( CAST( DATE(CURRENT_TIMESTAMP()) AS DATE) AS DATETIME )

Как мы можем получить TIMESTAMP, чтобы стать DATETIME, не теряя времени (то есть что-то вроде этого)?

SELECT CAST(   CURRENT_TIMESTAMP() AS DATETIME )

Как мы можем это сделать в Legacy SQL и Standard SQL на BigQuery?

ПРИМЕЧАНИЕ. Мы только что обнаружили наш пример работы CAST по стандартному SQL (похоже, наша система запросов использовала устаревший SQL).

1 Ответ

2 голосов
/ 13 июня 2019

Вы можете просто использовать 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)  

с тем же выходом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...