Programing

MySQL에서 날짜 비교

lottogame 2020. 10. 14. 07:21
반응형

MySQL에서 날짜 비교


주어진 두 날짜 사이에있는 데이터베이스의 날짜를 비교하고 싶습니다. 데이터베이스의 열은 DATETIME이며 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을 실행할 때이 오류가 발생합니다.

SQL 구문에 오류가 있습니다. MySQL 서버 버전에 해당하는 설명서에서 'us_reg_date, 120)> ='2000-07-05 'AND CONVERT (CHAR (10), us_reg_date, 120) <='2011- '근처에서 사용할 올바른 구문을 확인하십시오. 라인 1

이 문제를 어떻게 해결할 수 있습니까?


아래 쿼리를 시도해 볼 수 있습니다.

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

SQL 서버 구문 문자열로 날짜를 변환. MySQL에서는 DATE 함수를 사용하여 datetime에서 날짜를 추출 할 수 있습니다 .

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

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

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

형식 문자열 '% Y- % m- % d'및 입력 날짜 형식을 확인합니다.


안녕 여러분 도와 주셔서 감사합니다.

여기에 코드가 있습니다 .......

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')

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

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')를 변경해야했습니다.

참고 URL : https://stackoverflow.com/questions/3651985/compare-dates-in-mysql

반응형