将日期添加到日期。设定给定月份的最后一天

时间:2014-05-28 07:55:39

标签: php postgresql date

我正在尝试将一个月添加到posgresql中的日期,同时将DAY设置为该月的最后一天。 怎么样?

示例

UPDATE temp 
SET expiration_date = expiration_date + interval '1' month
WHERE name = 'xxx'

事情是,如果日期是2014-04-30,例如,它将增加一个月,日期将变为2014-05-30,而五月确实有31天。

我想要完成的例子
2014-04-30 + 1个月 - > 2014年5月31日
2014-05-31 + 1个月 - > 2014-06-30

需要一些提示。在postgres中有可能吗?我可以使用PHP来计算它,但我希望避免这种情况。

1 个答案:

答案 0 :(得分:3)

如果我理解正确,您需要下个月的最后一天。这可以这样做:

SELECT date_trunc('mon','2014-04-30'::date+interval'2mon')-interval'1day',
       date_trunc('mon','2014-05-31'::date+interval'2mon')-interval'1day';