我想将float64转换为date / datetime?
我有一个内容为1.483653436E9的字段如何将其转换为日期?
由于
答案 0 :(得分:6)
尝试以下作为示例
#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