mysql选择curdate
我有一张这样的桌子:mysql选择curdate,mysql,select,Mysql,Select,我有一张这样的桌子: SELECT * FROM `table_name` ORDER BY `table_name`.`dtn` DESC LIMIT 0 , 30 id dt dtn 23 2012-01-20 2012-04-20 22 2011-12-19 2012-01-19 SELECT * FROM table_name WHERE MONTH(dtn) = MONTH(CURDATE()) AND YEAR(dtn) = YEAR
SELECT *
FROM `table_name`
ORDER BY `table_name`.`dtn` DESC
LIMIT 0 , 30
id dt dtn
23 2012-01-20 2012-04-20
22 2011-12-19 2012-01-19
SELECT *
FROM table_name
WHERE MONTH(dtn) = MONTH(CURDATE()) AND YEAR(dtn) = YEAR(CURDATE())
我需要检查一下,这个月我需要访问哪些用户。
示例:该用户于2011年12月19日访问了d/m/y,并计划于2012年1月19日进行下一次访问。
最后一次访问是在2012年1月20日,下一次访问计划在2012年4月19日进行
问题是:月份现在是一月=1,我想显示我这个月需要访问的所有用户。
当我使用SQL select语句时,如下所示:
SELECT *
FROM `table_name`
ORDER BY `table_name`.`dtn` DESC
LIMIT 0 , 30
id dt dtn
23 2012-01-20 2012-04-20
22 2011-12-19 2012-01-19
SELECT *
FROM table_name
WHERE MONTH(dtn) = MONTH(CURDATE()) AND YEAR(dtn) = YEAR(CURDATE())
用户之所以被列出,是因为在过去,用户被安排在1月份
在1月份,不应列出此用户,因为最后一个计划日期是2012-04-20。此SQL查找本月具有
dtn
的行,这些行在同一个月内没有任何与dt
对应的行:
SELECT *
FROM table_name
WHERE MONTH(dtn) = MONTH(CURDATE()) AND YEAR(dtn) = YEAR(CURDATE())AND (dtn>=CURDATE())
SELECT *
FROM table_name t1
LEFT OUTER JOIN
table_name t2
ON
t1.dtn = t2.dt AND t2.dt IS NULL
WHERE MONTH(t1.dtn) = MONTH(CURDATE()) AND YEAR(t1.dtn) = YEAR(CURDATE())