MySQL Query - 选择当前日期在date_to和date_to的最后30天之间的所有记录

时间:2014-05-13 08:06:50

标签: mysql

大家好,我希望你能帮助我

我有一个表格m_membership_list,还有字段date_fromdate_to,我需要计算当前日期介于date_to和last_30之间的记录数date_to

的天数

我搜索了这个,但我没有找到确切的例子,但我认为逻辑是这样的 MySQL Query - Records between Today and Last 30 Days

但我仍然无法得到它。

这是我的SQL。

SELECT * FROM m_membership_list WHERE NOW() IN DATE_SUB(date_to, INTERVAL 30 DAY)

我认为逻辑几乎就是这样,但我不知道它为什么不起作用。

SELECT * FROM m_membership_list WHERE NOW() BETWEEN date_to AND (DATE_SUB(date_to,INTERVAL 30 DAY))即兴

3 个答案:

答案 0 :(得分:1)

正如expr BETWEEN min AND max所述:

  

如果 expr 大于或等于 min 且< strong> expr 小于或等于 max BETWEEN返回1,否则返回0

由于NOW()不能同时大于或等于date_to 小于或等于DATE_SUB(date_to,INTERVAL 30 DAY),因此您的子句必然始终为false。扭转操作数:

WHERE NOW() BETWEEN DATE_SUB(date_to,INTERVAL 30 DAY) AND date_to

答案 1 :(得分:0)

试试这个

SELECT *
FROM m_membership_list
WHERE NOW() BETWEEN NOW()-INTERVAL 30 DAY AND date_to;

答案 2 :(得分:0)

试试这个

SELECT count(*)
FROM m_membership_list 
WHERE TO_DAYS( NOW( ) ) - TO_DAYS( date_to) <=30