반응형
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
반응형
'programing' 카테고리의 다른 글
PHP: 부모 클래스에서 자식 클래스의 함수를 호출하는 방법 (0) | 2022.09.08 |
---|---|
워드 프레스는 루프 밖에 있는 페이지 ID다. (0) | 2022.09.08 |
Windows for Node.js 의존관계에서 Python 실행 (0) | 2022.09.08 |
약속 콜백에서 vue 데이터 변경 (0) | 2022.09.08 |
MySQL에 IP 주소를 저장하는 가장 효율적인 방법 (0) | 2022.09.08 |