【问题标题】:Adding a month to a date. Setting day to last day of given month将月份添加到日期。将日期设置为给定月份的最后一天
【发布时间】:2014-05-28 07:55:38
【问题描述】:

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

一个例子

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

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

我想要完成的示例
2014-04-30 + 1 个月 -> 2014-05-31
2014-05-31 + 1 个月 -> 2014-06-30

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

【问题讨论】:

  • try : update temp set CURRENT_DATE + INTERVAL '1 month' where name='xxx';

标签: php postgresql date


【解决方案1】:

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

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

【讨论】:

  • 喜欢这个答案。是的,你没看错。这就是我想要的。像魅力一样工作!
猜你喜欢
  • 2011-06-06
  • 2013-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-12-03
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
相关资源
最近更新 更多