我有一张表:
id trans_date resp_code
------------------------------------------------
1 2011-02-15 12:47:09 1
2 2011-02-24 12:47:09 1
3 2011-02-29 12:47:09 1
4 2011-03-11 12:47:09 1
5 2011-03-15 12:47:09 1
6 2011-03-22 12:47:09 1
7 2011-04-10 12:47:09 1
8 2011-04-11 12:47:09 1
我想要的只是获取给定month
的所有记录。
与month March[03], I should get row 4,5, and 6
一样。
提前致谢.....
答案 0 :(得分:14)
SELECT *
FROM tbl
WHERE trans_date BETWEEN '2011-03-01' AND DATE_ADD('2011-03-01', INTERVAL 1 MONTH)
您也可以按照此查询
SELECT *
FROM tbl
WHERE MONTH(trans_date) = 3
AND YEAR(trans_date) = 2011
但是它会导致全扫描,因此在大量数据上会很慢
答案 1 :(得分:3)
您可以使用MySQL的MONTH()功能
SELECT * FROM tbl WHERE MONTH( trans_date ) = 3