집 >데이터 베이스 >MySQL 튜토리얼 >내 SQLite 날짜 범위 쿼리가 예기치 않은 결과를 반환하는 이유는 무엇입니까?
잘못된 날짜 형식으로 인해 SQLite 날짜 범위 쿼리에 문제가 발생함
특정 날짜 범위 내의 데이터에 대해 SQLite 데이터베이스를 쿼리할 때 자주 발생하는 문제는 쿼리가 지정된 범위를 무시하고 모든 날짜를 반환한다는 것입니다. 이는 SQLite의 날짜 형식에 대한 오해에서 비롯되는 경우가 많습니다.
SQLite에서는 날짜가 YYYY-MM-DD 형식이어야 합니다. "11/1/2011" 및 "11/8/2011"과 같은 다른 형식을 사용하는 쿼리는 날짜가 아닌 텍스트 문자열로 처리됩니다.
이로 인해 다음과 같은 쿼리가 예기치 않게 작동하게 됩니다.
<code class="language-sql">SELECT * FROM test WHERE date BETWEEN '11/1/2011' AND '11/8/2011'</code>
SQLite는 '11/1/2011'과 '11/8/2011'을 문자열로 처리하기 때문에 BETWEEN
연산자는 이를 사전순(텍스트)으로 비교합니다. 쿼리는 실제 날짜에 관계없이 date
열에 이러한 문자열이 포함된 모든 행을 반환합니다.
해결책은 데이터베이스와 쿼리의 모든 날짜가 YYYY-MM-DD 형식을 엄격하게 준수하는지 확인하는 것입니다. 이를 통해 SQLite는 날짜를 올바르게 해석하고 날짜 범위에 대한 정확한 결과를 반환할 수 있습니다.
위 내용은 내 SQLite 날짜 범위 쿼리가 예기치 않은 결과를 반환하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!