mysql 使用DATE_ADD()获取月份的最后一天

2g32fytz  于 2023-03-11  发布在  Mysql
关注(0)|答案(1)|浏览(227)

我需要创建一个查询,以确定员工的退休供款是延迟支付还是按时支付。如果供款是在员工本应获得该笔款项的月份结束后30天后支付的,则该供款是延迟支付的。例如,如果员工是在2022年3月6日获得付款的,那么捐款必须在2022年4月30日之前做出。我正在处理的专栏有:

  • trade_date:缴款日期
  • pay_date:支付员工工资的日期

我已经创建了下面的查询,但是意识到DATE_ADD(pay_date, interval 1 month)不能正常工作,因为2022-3-6最终会变成2022-4-6而不是2022-3-31。

Select trade_date, pay_date,
   CASE WHEN trade_date > DATE_ADD(DATE_ADD(pay_date, interval 1 month), interval 30 day) 
        THEN 'Late' ELSE 'On time' END as status
 From 2022_contributions

我不熟悉在DATE_ADD()内部添加刚好够到月底的天数的方法,任何建议都非常感谢。
我正在使用MySQL

wljmcqd8

wljmcqd81#

我已经找到了答案,但我会把这个留在这里,以防它对其他人有帮助。MySQL实际上有一个函数LAST_DAY(),你可以在其中输入你的日期列,它会返回那个月的最后一天的日期。

相关问题