仅将日期和月份与mysql中的日期字段进行比较

Joh*_*ohn 9 mysql sql select date

如何比较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"
Run Code Online (Sandbox Code Playgroud)

Mar*_*ams 27

请改用DATE_FORMAT:

SELECT DATE_FORMAT('2000-07-10','%m-%d')
Run Code Online (Sandbox Code Playgroud)

产量

07-10
Run Code Online (Sandbox Code Playgroud)

这是您的查询重写DATE_FORMAT():

SELECT *
FROM table
WHERE DATE_FORMAT(field, '%m-%d') = DATE_FORMAT('2000-07-10', '%m-%d')
AND id = "1"
Run Code Online (Sandbox Code Playgroud)

  • 当然,但是如果可以避免,为什么要将日期转换为字符串以对后者进行比较? (3认同)
  • 是的,看看其他答案.显然,将日期转换为字符串来比较它们只能不赞成**. (3认同)

chr*_*sse 8

你可以使用DAYOFMONTHMONTH功能:

SELECT *
FROM table
WHERE DAYOFMONTH(field) = 31 AND MONTH(field) = 12 AND id = 1;
Run Code Online (Sandbox Code Playgroud)

编辑: 当然,如果你想比较两个字段,你也可以写下面的内容:

SELECT *
FROM table
WHERE 
    DAYOFMONTH(field) = DAYOFMONTH(field2) 
    AND MONTH(field) = MONTH(field2) 
    AND id = 1 ...;
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请查看手册:

  1. MONTH
  2. DAYOFMONTH