MySQL中如何获取月末日期以判断员工退休金缴纳是否逾期
在MySQL里,你可以用LAST_DAY()函数直接获取指定日期所在月份的月末日期,这比手动计算天数靠谱多了。
针对你的需求,正确的逻辑应该是:先通过LAST_DAY(pay_date)得到发薪当月的最后一天,再给这个日期加30天,最后对比trade_date是否超过这个时间点。
修正后的查询语句如下:
SELECT trade_date, pay_date, CASE WHEN trade_date > DATE_ADD(LAST_DAY(pay_date), INTERVAL 30 DAY) THEN 'Late' ELSE 'On time' END AS status FROM 2022_contributions;
举个例子验证:当pay_date是2022-3-6时,LAST_DAY(pay_date)返回2022-03-31,加30天后就是2022-04-30,完全符合你给出的逾期判断标准。
另外补充一点,如果你的业务需要调整逾期判定的边界(比如trade_date等于截止日期算逾期),可以把判断条件改成>=。
内容的提问来源于stack exchange,提问作者Exquisite_Poupon
相关产品推荐
相关产品推荐

