[mysql] MySQL은 오늘과 같은 날짜 선택

오늘 날짜를보고 당일에 등록한 결과 만 반환하는 mysql select 문을 실행하려고합니다. 현재 다음을 시도했지만 작동하지 않는 것 같습니다.

SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d') 
    FROM users 
    WHERE users.signup_date = CURDATE()

나는 SELECT이것에 대한 진술을 수정했습니다 . 감사합니다.

SELECT id FROM users WHERE DATE(signup_date) = CURDATE()



답변

SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d') 
FROM users 
WHERE DATE(signup_date) = CURDATE()


답변

이 쿼리는 signup_date필드에 인덱스가있는 경우 인덱스를 사용 합니다.

SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d') 
    FROM users 
    WHERE signup_date >= CURDATE() && signup_date < (CURDATE() + INTERVAL 1 DAY)


답변

에 서식을 추가해야하는 것 WHERE같습니다.

SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d') 
FROM users 
WHERE DATE_FORMAT(users.signup_date, '%Y-%m-%d') = CURDATE()

데모로 SQL Fiddle 보기


답변

CONCATwith CURDATE()를 하루 중 전체 시간 동안 사용한 다음 BETWEENin WHERE조건 을 사용하여 필터링 할 수 있습니다 .

SELECT users.id, DATE_FORMAT(users.signup_date, '%Y-%m-%d')
FROM users
WHERE (users.signup_date BETWEEN CONCAT(CURDATE(), ' 00:00:00') AND CONCAT(CURDATE(), ' 23:59:59'))


답변