在BigQuery中使用json_extract_scalar时如何转换Unix时间戳为格式化日期
在BigQuery的SELECT语句中将Unix时间戳转为指定日期时间格式
当然可以!在BigQuery里直接在SELECT语句里完成这个转换完全没问题,不过得先确认你的CreatedDateTime字段是秒级还是毫秒级的Unix时间戳——这俩处理方式有点不一样,我给你分别举例子说明:
情况1:时间戳是秒级(比如值为1517481103,对应你要的2018-02-01 17:11:43)
用TIMESTAMP_SECONDS()把秒级时间戳转为BigQuery原生的TIMESTAMP类型,再用FORMAT_TIMESTAMP()指定输出格式:
SELECT FORMAT_TIMESTAMP("%Y-%m-%d %H:%M:%S", TIMESTAMP_SECONDS(CreatedDateTime)) AS FormattedCreatedDateTime FROM `你的项目ID.你的数据集ID.你的表名`
情况2:时间戳是毫秒级(比如值为1517481103000)
只需要把上面的TIMESTAMP_SECONDS()换成TIMESTAMP_MILLIS()就行:
SELECT FORMAT_TIMESTAMP("%Y-%m-%d %H:%M:%S", TIMESTAMP_MILLIS(CreatedDateTime)) AS FormattedCreatedDateTime FROM `你的项目ID.你的数据集ID.你的表名`
额外提示:指定时区
如果你的时间戳需要对应特定时区(比如北京时间),可以在FORMAT_TIMESTAMP()里加上时区参数,避免默认UTC时区的偏差:
SELECT FORMAT_TIMESTAMP("%Y-%m-%d %H:%M:%S", TIMESTAMP_SECONDS(CreatedDateTime), "Asia/Shanghai") AS FormattedCreatedDateTime FROM `你的项目ID.你的数据集ID.你的表名`
内容的提问来源于stack exchange,提问作者Ipkiss
相关产品推荐
相关产品推荐

