programing

MySQL에서 날짜 비교

goodsources 2022. 9. 8. 22:49
반응형

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을 실행하면 다음 오류가 발생합니다.

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

이 문제를 어떻게 해결할 수 있을까요?

아래 쿼리를 사용해 볼 수 있습니다.

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

이것은 날짜를 문자열로 변환하기 위한 SQL Server 구문입니다.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

이 방법은 다음과 같습니다.

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

형식 문자열을 메모합니다.%Y-%m-%d입력 날짜의 형식을 지정합니다.예를들면2012-11-02대신12-11-2.

정답을 맞혔어요.

코드는 다음과 같습니다.

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

반응형