如何比较mysql中的日期和月份日期和月份?
例如,我在一个表格中有一个日期:2014-07-10
同样,另一个表中的另一个日期2000-07-10
。
我想比较日期和月份在日期字段上的相等。
我试过这种格式。但我无法得到答案
select *
from table
where STR_TO_DATE(field,'%m-%d') = STR_TO_DATE('2000-07-10','%m-%d')
and id = "1"
答案 0 :(得分:25)
改为使用DATE_FORMAT:
SELECT DATE_FORMAT('2000-07-10','%m-%d')
产量
07-10
您的查询已使用DATE_FORMAT()
重新编写:
SELECT *
FROM table
WHERE DATE_FORMAT(field, '%m-%d') = DATE_FORMAT('2000-07-10', '%m-%d')
AND id = "1"
答案 1 :(得分:8)
您可以使用DAYOFMONTH
和MONTH
功能:
SELECT *
FROM table
WHERE DAYOFMONTH(field) = 31 AND MONTH(field) = 12 AND id = 1;
修改强> 当然,如果你想比较两个字段,你也可以写下面的内容:
SELECT *
FROM table
WHERE
DAYOFMONTH(field) = DAYOFMONTH(field2)
AND MONTH(field) = MONTH(field2)
AND id = 1 ...;
有关详细信息,请查看手册:
MONTH
DAYOFMONTH
答案 2 :(得分:3)
试试这个:
SELECT *
FROM tableA a
WHERE a.id = 1 AND MONTH(a.field) = MONTH('2000-07-10') AND
DAY(a.field) = DAY('2000-07-10')
答案 3 :(得分:1)
您可以使用DATE_FORMAT
:
SELECT * FROM `table`
WHERE DATE_FORMAT(STR_TO_DATE(`field`, '%Y-%m-%d'), '%d-%m') = DATE_FORMAT(STR_TO_DATE('2000-07-10','%Y-%m-%d'), '%d-%m')
第二个WHERE
也无效。无论如何,你不仅要获得所有行id=1