【问题标题】:How to convert epoch to datetime in bigquery?如何在bigquery中将纪元转换为日期时间?
【发布时间】:2019-09-19 19:41:00
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • DATETIME 格式具有"T" in it. That is the standard format. You seem to want a string, but I would recommend leaving the value as a DATETIME`。

标签: sql google-cloud-platform google-bigquery


【解决方案1】:

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

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

这条SQL的结果是

1890-12-10 05:48:40

【讨论】:

  • 因为源系统中存在 1970 年之前的日期并且它是必需的。因此问。这很有帮助。
猜你喜欢
  • 2018-04-24
  • 2011-12-06
  • 2012-09-06
  • 2010-10-18
  • 2017-02-28
  • 1970-01-01
  • 2012-11-08
  • 2019-01-15
  • 2011-12-13
相关资源
最近更新 更多