SQL Server에서 특정 날짜보다 큰 날짜 쿼리
지정된 날짜보다 이후 날짜의 레코드를 검색하려고 하면 쿼리에 문제가 발생할 수 있습니다. 예를 들어, 아래와 유사한 쿼리:
SELECT * FROM dbo.March2010 A WHERE A.Date >= 2010-04-01;
A.Date가 2010-03-04 00:00:00.000 형식인 경우 예상한 결과가 나오지 않을 수 있습니다.
이 문제를 해결하려면 변환 기능을 사용하여 날짜 표현을 적절한 날짜/시간 형식으로 변환하는 것이 중요합니다. 올바른 구문은 다음과 같습니다.
SELECT * FROM dbo.March2010 A WHERE A.Date >= Convert(datetime, '2010-04-01' )
그 이유는 수학 표현식을 사용할 때 SQL Server가 날짜 값을 숫자로 처리하여 잘못된 비교가 발생하기 때문입니다. 날짜를 날짜/시간으로 변환하면 비교가 올바르게 이루어집니다.
SQL Server에서는 작은따옴표(예:
SELECT * FROM dbo.March2010 A WHERE A.Date >= '2010-04-01'
를 사용하여 암시적 변환을 허용할 수 있음)가독성이 낮고 읽기 어려운 것으로 간주됩니다. 명시적인 변환 방법보다 안정적입니다. 명시적 변환을 사용하면 사용자 설정이나 현재 시스템 날짜에 관계없이 날짜를 올바르게 처리할 수 있습니다.
위 내용은 SQL Server에서 특정 날짜보다 큰 날짜를 올바르게 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!