在postgres中减少日期(月)

时间:2014-11-06 07:22:33

标签: sql postgresql date date-format

我想从2014-11-05 23:18:07.452957-07开始减去三个月。它应该提供类似2014-08-05 23:18:07.452957-07的输出 我正在尝试这个:

 SELECT created_on, DATE (created_on - INTERVAL '5 months') FROM user_authentication_logs   
 WHERE user_id = 1014 ORDER BY created_on DESC LIMIT 1

但日期格式已更改。请帮忙。 提前谢谢。

2 个答案:

答案 0 :(得分:0)

首先,只需删除Date广告:

SELECT created_on, DATE (created_on - INTERVAL '5 months') FROM user_authentication_logs   
 WHERE user_id = 1014 ORDER BY created_on DESC LIMIT 1

通过

SELECT created_on, created_on - INTERVAL '5 months' as created_on_minus_5_months FROM user_authentication_logs   
 WHERE user_id = 1014 ORDER BY created_on DESC LIMIT 1

因为Date类型仅包含日期(无时间)

如果您的日期格式输出已更改,您可以使用t_char功能

自定义它

答案 1 :(得分:0)

试一试 我想这就是你想要的

 SELECT created_on, cast((created_on - INTERVAL '5 months')as timestamp with time zone) FROM user_authentication_logs   
 WHERE user_id = 1014 ORDER BY created_on DESC LIMIT 1;