我有一个整数20160115201307,我想转换为时间戳2016-01-15 20:13:07 UTC。我试过时间戳(日期),但是错误的日期为1970-08-22 08:01: 55 UTC有人建议我需要使用哪个查询?
答案 0 :(得分:1)
这更可能是字符串而不是整数,您需要使用正则表达式将字符串解析为组件。
SELECT ds,
TIMESTAMP(REGEXP_REPLACE(ds, r'(....)(..)(..)(..)(..)(..)', r'\1-\2-\3 \4:\5:\6')) ts
FROM (SELECT '20160115201307 ' ds)
返回
+-----+----------------+-------------------------+--+
| Row | ds | ts | |
+-----+----------------+-------------------------+--+
| 1 | 20160115201307 | 2016-01-15 20:13:07 UTC | |
+-----+----------------+-------------------------+--+
答案 1 :(得分:1)
使用标准SQL:
SELECT PARSE_TIMESTAMP('%Y%m%d%H%M%S', CAST(20160115201307 AS STRING))
表中有900条记录:
SELECT PARSE_TIMESTAMP('%Y%m%d%H%M%S', CAST(col AS STRING))
FROM `dataset.table`
启用标准SQL: