获取MySQL中给定月份的记录?

时间:2011-05-07 10:19:18

标签: php mysql

我有一张表:

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一样。

提前致谢.....

2 个答案:

答案 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