sql - 如何在bigquery中将纪元转换为日期时间?
问题描述
我在 bigquery 表中有一个以毫秒为单位的纪元值的列。这些还包括 1970 年之前日期的负纪元值。
如何使用标准和旧版 SQL 将它们转换为 DATETIME 格式,格式为:1998-10-18 13:45:55
?
这甚至适用于 1970 年之前的日期。即负纪元值。
我试过EXTRACT(DATETIME FROM TIMESTAMP_MILLIS(-2494865480000));
但它会返回一个包含 T 的值:
1890-12-10T05:48:40
解决方案
撇开我不理解您对 1970 年之前日期的期望,您可以使用FORMAT_DATETIME
函数来格式化您的日期结果,如下所示:
SELECT FORMAT_DATETIME("%F %T", EXTRACT(DATETIME FROM TIMESTAMP_MILLIS(-2494865480000)))
此 SQL 的结果是
1890-12-10 05:48:40
推荐阅读
- mysql - MySQL - 如何在数据库的整个历史记录中使用特定的最小时间间隔查找日期
- java - 使用休眠 6.0.10 验证会导致来自 EachPattern 的 ConstraintDefinitionException
- java - java.lang.NoClassDefFoundError: org/apache/poi/hssf/usermodel/HSSFWorkbook 错误
- iexpress - 如何找到 IExpress 缺少的 EXE 输出?
- string - Elixir:在此 Map 中将索引转换为从字符串到整数
- go - ProtoBuf 解组键:[ ["abc", "123"], ["123"]]
- ios - React Native:从js按下按钮时调用快速代码
- python - 什么时候应该将一列作为索引添加到 pandas 中的数据框
- powershell - 通过 Powershell 命令的 Power BI 在线租户清单
- jmeter - 模拟多用户访问多个 URL 提交表单