如何在BigQuery中生成按时分秒间隔的连续时间戳?
在BigQuery生成分钟级间隔的连续时间戳
当然可以!BigQuery不仅支持按天生成连续日期,还能通过GENERATE_TIMESTAMP_ARRAY()函数轻松生成15分钟、5分钟甚至任意分钟间隔的连续时间戳,下面给你具体的实现示例:
15分钟间隔的时间戳生成
如果你需要生成从2016-10-18 00:00:00到2016-10-19 00:00:00之间,每15分钟一个的连续时间戳,可以用这段SQL:
SELECT * FROM UNNEST(GENERATE_TIMESTAMP_ARRAY('2016-10-18 00:00:00', '2016-10-19 00:00:00', INTERVAL 15 MINUTE)) AS timestamp
执行后会返回包含首尾时间在内的所有15分钟节点,比如2016-10-18 00:00:00、2016-10-18 00:15:00、2016-10-18 00:30:00……直到2016-10-19 00:00:00。
5分钟间隔的时间戳生成
如果需要更精细的5分钟间隔,以2016-10-18 08:00:00到2016-10-18 10:00:00为例,SQL语句如下:
SELECT * FROM UNNEST(GENERATE_TIMESTAMP_ARRAY('2016-10-18 08:00:00', '2016-10-18 10:00:00', INTERVAL 5 MINUTE)) AS timestamp
这段代码会生成从早上8点到10点,每5分钟一个的时间戳,覆盖所有整点、5分、10分……直到10点整的时间节点。
额外技巧:格式化时间戳
如果需要将生成的时间戳转换成更易读的格式,可以结合FORMAT_TIMESTAMP()函数处理:
SELECT timestamp, FORMAT_TIMESTAMP('%Y-%m-%d %H:%M', timestamp) AS formatted_time FROM UNNEST(GENERATE_TIMESTAMP_ARRAY('2016-10-18 00:00:00', '2016-10-18 01:00:00', INTERVAL 5 MINUTE)) AS timestamp
内容的提问来源于stack exchange,提问作者user1157751
相关产品推荐
相关产品推荐

