大家好,我希望你能帮助我
我有一个表格m_membership_list
,还有字段date_from
和date_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))
即兴
答案 0 :(得分:1)
如果
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