2017-01-06 1 views

ответ

1

попробуйте ниже в качестве примера

#legacySQL 
SELECT 
    ts_original, 
    ts_as_float, 
    USEC_TO_TIMESTAMP(CAST(ts_as_float AS INTEGER)) AS ts, 
    DATE(USEC_TO_TIMESTAMP(CAST(ts_as_float AS INTEGER))) AS dt 
FROM (SELECT CURRENT_TIMESTAMP() AS ts_original, 
     CAST(TIMESTAMP_TO_USEC(CURRENT_TIMESTAMP()) AS FLOAT) AS ts_as_float) 

и для стандартного SQL (пропустил это первоначально в названии вопроса):

#standardSQL 
WITH test AS (
    SELECT CURRENT_TIMESTAMP() AS ts_original, 
    CAST(UNIX_MICROS(CURRENT_TIMESTAMP()) AS FLOAT64) AS ts_as_float 
) 
SELECT 
    ts_original, 
    ts_as_float, 
    TIMESTAMP_MICROS(CAST(ts_as_float AS INT64)) AS ts, 
    DATE(TIMESTAMP_MICROS(CAST(ts_as_float AS INT64))) AS dt 
FROM test 
+0

Спасибо, я использовал DATE (TIMESTAMP_SECONDS (CAST (время AS INT64))) и решила мою проблему. –

+0

@ gabriel.almeida - Если ответ помог вам решить вашу проблему, и вы ее принимаете, вы должны также рассмотреть возможность голосования. Подробнее см. На странице http://stackoverflow.com/help/someone-answers и Upvote в http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235. –