选择日期字段值不在当前月份和年份中的记录

时间:2019-03-07 16:33:32

标签: mysql

尝试获取日期时间字段中的日期不在当前月份和年份内的记录。

我将发送电子邮件的当前日期添加到nl_last_sent字段。

该脚本每天运行(通过电子邮件每月发送一封电子邮件),我不想将电子邮件重新发送给已经收到该电子邮件的收件人。

由于人们可以在一个月中的任何时间选择加入,所以我仍然希望他们在当月可以收到它,这就是为什么我每天都要运行它。

因此,如果nl_last_sent的值为2019-03-07 8:55:10,则他们已经收到了2019年3月的新闻通讯。

当我再次运行时,我不想包含该记录。

使用2019-03 ..中的任何日期进行测试不会选择该记录。正确。

我测试了以下代码,将nl_last_sent更改为2019-01-01 11:15:56,该代码应选择记录,因为字段中的年份和月份与当前年份和月份不匹配,但没有错误且没有记录返回。

... WHERE
( YEAR(nl_last_sent) != YEAR(CURRENT_DATE()) 
AND MONTH(nl_last_sent) != MONTH(CURRENT_DATE()) )

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

@Raymond Nijland,下次我将提供MCVE,谢谢!

使用@Raymond Nijland的修改后的代码版本,我得以纠正。感谢您的协助。

最终工作代码:

BETWEEN ( LAST_DAY(CURRENT_DATE() ) + INTERVAL 1 DAY ) - INTERVAL 1 MONTH AND 
LAST_DAY(CURRENT_DATE() )