【问题标题】:How do I convert iso to DATE without the trailing time string?如何在没有尾随时间字符串的情况下将 iso 转换为 DATE?
【发布时间】:2021-09-19 11:48:04
【问题描述】:

以下函数以这种格式返回日期,“2021-01-01T00:00:00.000Z”,我只需要“2021-01-01”的日期部分。

DATE_TRUNC(‘day’, timestamp)

【问题讨论】:

  • 哪个数据库服务器?
  • 指定 RDBMS,我们将能够提供帮助 :)
  • 您使用的是哪种 DBMS 产品? “SQL”只是所有关系数据库使用的一种查询语言,而不是特定数据库产品的名称,日期/时间函数是高度产品特定的。请为您正在使用的数据库产品添加tagWhy should I tag my DBMS
  • 我知道DATE_TRUNC() 不会返回时间组件的数据库。这可能是您的用户界面或其他一些处理的产物(例如,将数据加载到 timestamp 列而不是 date 列)。

标签: sql date iso


【解决方案1】:

您当前对DATE_TRUNC 的调用的返回值在功能上已经日期2021-01-01,时间戳形式是午夜。话虽如此,如果您只想查看作为日期,那么也许您想要这个:

SELECT FORMAT_DATETIME("%Y-%m-%d", DATE_TRUNC('day', timestamp))
FROM yourTable;

另一个可能适用于 BigQuery 的技巧是将时间戳转换为正确长度的 VARCHAR

SELECT CAST(DATE_TRUNC('day', timestamp) AS VARCHAR(10))
FROM yourTable;

【讨论】:

  • 谢谢蒂姆!第一个不起作用,但第二个返回 2021-01-01 00:00:00。知道为什么会这样吗?
  • 您的实际数据库是什么?你的观察出乎我的意料。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-07
  • 2021-12-14
  • 2020-04-09
  • 2022-11-12
  • 1970-01-01
  • 2021-01-20
相关资源
最近更新 更多