복붙노트

[SQL] MySQL은 비교 날짜

SQL

MySQL은 비교 날짜

나는이 주어진 날짜 사이에 데이터베이스에서 날짜를 비교합니다. 데이터베이스에서 컬럼은 DATETIME, 그리고 난 단지 날짜 형식이 아닌 날짜 형식으로 비교합니다.

SELECT * FROM `players` WHERE CONVERT(CHAR(10),us_reg_date,120) >= '2000-07-05' AND CONVERT(CHAR(10),us_reg_date,120) <= '2011-11-10'

나는 SQL 위를 실행할 때이 오류가 발생합니다 :

이 문제는 어떻게 해결 될 수 있는가?

해결법

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

    1.당신은 쿼리 아래에 시도 할 수 있습니다

    당신은 쿼리 아래에 시도 할 수 있습니다

    select * from players
    where 
        us_reg_date between '2000-07-05'
    and
        DATE_ADD('2011-11-10',INTERVAL 1 DAY)
    
  2. ==============================

    2.즉 문자열로 날짜를 변환 SQL 서버 구문입니다. MySQL의에서 당신은 날짜에서 날짜를 추출 DATE 기능을 사용할 수 있습니다 :

    즉 문자열로 날짜를 변환 SQL 서버 구문입니다. MySQL의에서 당신은 날짜에서 날짜를 추출 DATE 기능을 사용할 수 있습니다 :

    SELECT *
    FROM players
    WHERE DATE(us_reg_date) BETWEEN '2000-07-05' AND '2011-11-10'
    

    당신이 열 us_reg_date에 인덱스를 활용하려는 경우 그러나 당신은 대신을 시도 할 수 있습니다 :

    SELECT *
    FROM players
    WHERE us_reg_date >= '2000-07-05'
      AND us_reg_date < '2011-11-10' + interval 1 day
    
  3. ==============================

    3.이것은 나를 위해 작동합니다 :

    이것은 나를 위해 작동합니다 :

    select date_format(date(starttime),'%Y-%m-%d') from data
    where date(starttime) >= date '2012-11-02';
    

    형식 문자열 참고 '% Y- % M- % D'를 입력 날짜 형식.

  4. ==============================

    4.얘들 아 내가 답을 가지고 당신의 도움을 주셔서 감사합니다.

    얘들 아 내가 답을 가지고 당신의 도움을 주셔서 감사합니다.

    여기에 코드입니다 .......

    SELECT * FROM table
    WHERE STR_TO_DATE(column, '%d/%m/%Y')
      BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
        AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
    
  5. ==============================

    5.이것은 나를 위해 일한 것입니다 :

    이것은 나를 위해 일한 것입니다 :

    select * from table
    where column
    BETWEEN STR_TO_DATE('29/01/15', '%d/%m/%Y')
     AND STR_TO_DATE('07/10/15', '%d/%m/%Y')
    

    제발, 나는 그것이 부하에 나이를 복용되면서 이전 솔루션에서 STR_TO_DATE (열 '% D / % m / % Y')을 변경해야한다고 주

  6. from https://stackoverflow.com/questions/3651985/compare-dates-in-mysql by cc-by-sa and MIT license