我需要一个SQL查询来比较两个日期,仅基于它们的年份和月份。
即。一个日期是2017-07-12,第二个日期是2017-07-30。
由于它们都共享同一个月和一年,我需要在WHERE查询中获取它们。
我知道如何使用DATEFORMAT(将两者转换为yyy-mm-01的形式)。我想知道是否有更清洁的方式。
答案 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'
。