有没有办法将日期转换为时间戳。例如,如果我的日期类似于2012/05/01
,我该如何将其转换为2012-05-01 00:00:01
答案 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
<强>更新强>
如果您只想要两个日期之间的差异,可以使用以下内容:
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