我将如何检索上一年最后三个月的记录?我在想它会是:
Date_add(curdate() , interval '-1 2' year_month)
我将如何检索上一年最后三个月的记录?我在想它会是:
Date_add(curdate() , interval '-1 2' year_month)
尝试这个:
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。
假设您的日期列名为“日期”,例如:
SELECT
*
FROM
table
WHERE
YEAR(date) = YEAR(DATE_SUB(CURDATE(), INTERVAL 1 YEAR))
AND
MONTH(date) BETWEEN 10 AND 12