복붙노트

[SQL] MySQL의 날짜 필드 만 월과 일 비교

SQL

MySQL의 날짜 필드 만 월과 일 비교

어떻게 MySQL의 날짜 필드 만 월과 일을 비교? 예를 들어, 나는 하나 개의 테이블에 날짜를했습니다 : 2014년 7월 10일

마찬가지로, 다른 테이블의 다른 날짜 2000년 7월 10일. 난 단지 날과 달 날짜 필드에 동일 비교하려는.

나는이 형식을 시도했다. 그러나 나는 대답을 얻을 수 없다

select *
from table
where STR_TO_DATE(field,'%m-%d') = STR_TO_DATE('2000-07-10','%m-%d')
and id = "1"

해결법

  1. ==============================

    1.사용 DATE_FORMAT 대신 :

    사용 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"
    
  2. ==============================

    2.당신은 DAYOFMONTH와 MONTH 기능을 수행 할 수 있습니다

    당신은 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 ...;
    

    자세한 내용은 설명서를 보라 :

  3. ==============================

    3.사용 MONTH 및 DAY 기능 :

    사용 MONTH 및 DAY 기능 :

    이 시도:

    SELECT *
    FROM tableA a 
    WHERE a.id = 1 AND MONTH(a.field) = MONTH('2000-07-10') AND 
          DAY(a.field) = DAY('2000-07-10') 
    
  4. ==============================

    4.당신은 DATE_FORMAT를 사용할 수 있습니다 :

    당신은 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

  5. from https://stackoverflow.com/questions/24510108/compare-only-day-and-month-with-date-field-in-mysql by cc-by-sa and MIT license