首页 > 解决方案 > 如何在bigquery中将纪元转换为日期时间?

问题描述

我在 bigquery 表中有一个以毫秒为单位的纪元值的列。这些还包括 1970 年之前日期的负纪元值。

如何使用标准和旧版 SQL 将它们转换为 DATETIME 格式,格式为:1998-10-18 13:45:55

这甚至适用于 1970 年之前的日期。即负纪元值。

我试过EXTRACT(DATETIME FROM TIMESTAMP_MILLIS(-2494865480000));

但它会返回一个包含 T 的值: 1890-12-10T05:48:40

标签: sqlgoogle-cloud-platformgoogle-bigquery

解决方案


撇开我不理解您对 1970 年之前日期的期望,您可以使用FORMAT_DATETIME函数来格式化您的日期结果,如下所示:

SELECT FORMAT_DATETIME("%F %T", EXTRACT(DATETIME FROM TIMESTAMP_MILLIS(-2494865480000)))

此 SQL 的结果是

1890-12-10 05:48:40


推荐阅读