Php MySQL获取上个月的datetime类型的行

Php MySQL获取上个月的datetime类型的行,php,mysql,date,datetime,mysqli,Php,Mysql,Date,Datetime,Mysqli,我正在尝试显示上个月发送的邮件。如果今天的日期是2014年8月11日,那么我想显示日期为11/07/14-11/08/14的消息 我的数据库上的日期字段的值为2014-08-10 17:20:28 type:datetime 我正在使用以下查询,但它不起作用,我认为问题是日期之后的时间?我删除了%h:%I:%s,但它仍然不工作 SELECT * FROM messages WHERE ...... AND (date_sent BETWEEN DATE_FORMAT(CURRENT_DAT

我正在尝试显示上个月发送的邮件。如果今天的日期是2014年8月11日,那么我想显示日期为11/07/14-11/08/14的消息

我的数据库上的日期字段的值为2014-08-10 17:20:28 type:datetime

我正在使用以下查询,但它不起作用,我认为问题是日期之后的时间?我删除了%h:%I:%s,但它仍然不工作

SELECT * 
FROM messages 
WHERE ...... 
AND (date_sent BETWEEN DATE_FORMAT(CURRENT_DATE - INTERVAL 1 MONTH, '%Y-%m-01 %h:%i:%s') 
AND LAST_DAY(CURRENT_DATE - INTERVAL 1 MONTH)) 
ORDER BY date_sent DESC
有什么建议吗?

可能是您当前使用的日期值,请立即尝试使用

因为您发送的日期已经是日期时间,所以根本不需要日期格式的调用。MySQL可以轻松比较自己的日期格式:

SELECT *
FROM messages
WHERE date_sent >= NOW() - INTERVAL 1 MONTH
SELECT *
FROM messages
WHERE date_sent >= NOW() - INTERVAL 1 MONTH