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

时间:2017-07-11 06:27:12

标签: sql postgresql timestamp

有没有办法将日期转换为时间戳。例如,如果我的日期类似于2012/05/01,我该如何将其转换为2012-05-01 00:00:01

之类的时间戳

4 个答案:

答案 0 :(得分: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

Demo

<强>更新

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

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

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

答案 1 :(得分:2)

您可以使用以下代码将其转换为timestamp

SELECT current_date::timestamp

它会将时间00:00:00直接分配给current_date

答案 2 :(得分:1)

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

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

答案 3 :(得分:0)

您可以添加时间部分

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