比较2个日期,不考虑当天

时间:2017-07-12 13:40:46

标签: mysql date

我需要一个SQL查询来比较两个日期,仅基于它们的年份和月份。

即。一个日期是2017-07-12,第二个日期是2017-07-30。

由于它们都共享同一个月和一年,我需要在WHERE查询中获取它们。

我知道如何使用DATEFORMAT(将两者转换为yyy-mm-01的形式)。我想知道是否有更清洁的方式。

2 个答案:

答案 0 :(得分:2)

您可以使用Month()Year()函数比较他们的月份和年份:

WHERE YEAR(date1)=YEAR(date2) AND MONTH(date1) = MONTH(date2);

他们手册中mysql date and time functions page的一些很好的信息。

答案 1 :(得分:1)

MySQL函数EXTRACT()可用于此目的:

WHERE EXTRACT(YEAR_MONTH FROM date1) = EXTRACT(YEAR_MONTH FROM date2)

EXTRACT(YEAR_MONTH FROM '2017-07-12')返回'201707'