如何使用mysql去年的最后三个月?

时间:2013-11-10 23:24:34

标签: mysql date sql-date-functions

我如何检索上一年最后三个月的记录?我以为会是这样的:

 Date_add(curdate() , interval '-1 2' year_month)  

2 个答案:

答案 0 :(得分:1)

试试这个:

WHERE my_date_column BETWEEN
  SUBDATE(CURDATE(), INTERVAL DAYOFYEAR(CURDATE()) + 91 DAY) AND
  SUBDATE(CURDATE(), INTERVAL DAYOFYEAR(CURDATE()) DAY)

91小于31 + 30 + 31,因为BETWEEN 包含

请注意,如果您的列是日期时间类型,则您需要将结束值设置为当天的最后

SUBDATE(SUBDATE(CURDATE(), INTERVAL DAYOFYEAR(CURDATE()) - 1 DAY), INTERVAL 1 SECOND)

请参阅这些表达式的SQLFiddle,以生成正确的值。

答案 1 :(得分:-1)

假设您将日期列命名为“date”,例如:

SELECT 
*
FROM 
table

WHERE
YEAR(date) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))

AND
MONTH(date) BETWEEN 10 AND 12