举个例子,删除同一月份的记录:
delete from table where TIMESTAMPDIFF(MONTH,table_date,‘2019-09-03’)=0;
以上为错误判断, TIMESTAMPDIFF判断的天数差小于30天,就认为同一个月。同样,当“MONTH”改成“DAY”时,TIMESTAMPDIFF判断的时间差小于24h,就认为同一天。
正确:
- 格式化日期 DATE_FORMAT()
DATE_FORMAT(time, '%Y%m' ) = DATE_FORMAT(time, '%Y%m' )
- 从年份0开始的天数 TO_DAYS(date)
TO_DAYS(time)=TO_DAYS(NOW());