MySQL에서 날짜 및 시간 데이터로 작업할 때 특정 날짜 범위에 속하는 데이터를 선택해야 하는 경우가 많습니다. . 그러나 날짜/시간 값으로 Created_at 열을 사용하는 경우 짧은 날짜의 경우 기본 해석은 자정입니다.
문제:
다음과 같은 쿼리가 발생하는 상황이 발생할 수 있습니다. 다음은 행의 Create_at 타임스탬프가 지정된 날짜 내에 있음에도 불구하고 행을 반환하지 않습니다. range:
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-06'
해결책:
문제는 쿼리가 실제로 '2011-12-01 00:00:00 범위의 데이터를 선택한다는 것입니다. '를 '2011-12-06 00:00:00'으로 변경합니다. 이 문제를 해결하려면 여러 가지 접근 방식이 있습니다.
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= '2011-12-07'
SELECT `users`.* FROM `users` WHERE created_at >= '2011-12-01' AND created_at <= DATE_ADD('2011-12-01', INTERVAL 7 DAY)
SELECT `users`.* FROM `users` WHERE created_at BETWEEN('2011-12-01', DATE_ADD('2011-12-01', INTERVAL 7 DAY))
이러한 접근 방식 중 하나를 사용하면 지정된 범위에 속하는 데이터가 올바르게 선택됩니다. '2011-12-06과 같은 Create_at 타임스탬프가 있는 행을 포함한 날짜 범위 10:45:36'.
위 내용은 MySQL에서 두 날짜 사이의 데이터를 올바르게 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!