在 pgSQL 中将日期转换为时间戳

新手上路,请多包涵

有没有办法将日期转换为时间戳。例如,如果我有一个像 2012/05/01 这样的日期,我如何将它转换为像 2012-05-01 00:00:01 这样的时间戳

原文由 i am batman 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.8k
2 个回答

您可以将日期列转换为文本,然后与时间戳的时间部分连接。在下面的查询中,我从当前日期创建了一个时间戳。

 select (cast(current_date as text) || ' 00:00:01'):: timestamp
from yourTable;

或者如果我们已经有了日期类型,我们可以简单地添加时间组件:

 select current_date + '00:00:01'::time

输出:

 11.07.2017 00:00:01

演示

更新:

如果您只想要两个日期之间的月份差异,您可以使用以下内容:

 DATE_PART('month', AGE(end_date, start_date))

当然,这里不涉及时间组件,但假设您计划将虚拟 00:00:01 分配给两个时间戳,结果不会改变。

原文由 Tim Biegeleisen 发布,翻译遵循 CC BY-SA 3.0 许可协议

select cast(current_date as timestamp) + interval '1 second'

接近标准 SQL,只有区间语法不同 interval '1' second

原文由 dnoeth 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题