在特定月份之间获取行的最佳方法

时间:2012-03-23 14:39:52

标签: mysql

我的日期以yyyy-mm-dd格式传递给我的脚本。

我正试图抓住所有提供的月份和年份的日记帐分录。

我应该这样做,yyyy-mm是提供的日期吗?

  

SELECT * FROM table WHERE ts_date> yyyy-mm-01 AND ts_date< YYYY-MM-31

似乎可能有更有效的方法来处理这个问题。

2 个答案:

答案 0 :(得分:1)

我认为你正在寻找这个:

-- Finds records from January
SELECT * FROM table WHERE MONTH(ts_date) = 1 AND YEAR(ts_date) = 2012;

答案 1 :(得分:1)

我通常使用BETWEEN语法处理长查询对我来说很容易。

所以你可以像这样使用它;

  

SELECT * FROM table WHERE ts_date BETWEEN'2010-11-18'AND   '2011-02-17'

(我猜使用样本日期比使用日期语法更好:))

如果你需要使用字符串字段中的日期(必须避免使用。)

  

SELECT * FROM table WHERE(DATE_FORMAT(ts_date,'%Y-%m-%d')BETWEEN   '2010-11-18'AND'2011-02-17')