我有这个问题:
SELECT * FROM tabl1
WHERE
(
created_time BETWEEN
DATE_FORMAT(NOW() ,'%Y-%m-02')
AND
DATE_FORMAT(NOW() ,'%Y-%m-02')+INTERVAL 1 MONTH
AND
DAY(NOW()) > 1
)
OR
(
created_time BETWEEN
DATE_FORMAT(NOW() ,'%Y-%m-02')
AND
DATE_FORMAT(NOW() ,'%Y-%m-02')-INTERVAL 1 MONTH
AND
DAY(NOW()) = 1
)
此查询将返回上个月创建的列, 但是月份从第2天开始到下个月第二天结束!
所以它会返回:
3.3.2015
2.3.2015
但不会返回
1.3.2015
如何用更好的方式编写查询?
答案 0 :(得分:-1)
始终这样做:
where datefield >= YourStartDate
and datefield < TheDayAfterYourEndDate
Dateformat返回字符串,仅用于显示目的。
答案 1 :(得分:-2)
我认为你可以像这样编写查询:
SELECT *
FROM tabl1
WHERE DATE >= '2015-02-02 00:00' AND DATE_2 <= '20015-03-02 23:59'