>데이터 베이스 >MySQL 튜토리얼 >SQL Server에서 날짜 부분만 사용하여 날짜/시간 값을 효율적으로 비교하는 방법은 무엇입니까?

SQL Server에서 날짜 부분만 사용하여 날짜/시간 값을 효율적으로 비교하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-05 14:41:40978검색

How to Efficiently Compare Datetime Values with Only the Date Part in SQL Server?

SQL Server에서 날짜만 포함된 날짜/시간 값 비교

특정 날짜에 생성된 레코드에 대해 데이터베이스를 쿼리할 때 다음 사항을 고려하는 것이 중요합니다. 열의 날짜/시간 특성입니다. 등호 연산자(예: U.DateCreated = '2014-02-07')를 사용하여 날짜 부분만 있는 날짜/시간 필드를 비교하면 예상한 결과가 반환되지 않을 수 있습니다.

해결책 1: 날짜 범위 사용

날짜 부분만 사용하여 날짜/시간 필드를 정확하게 비교하려면 날짜를 사용하세요. range:

Select * from [User] U
where U.DateCreated >= '2014-02-07' and U.DateCreated < dateadd(day,1,'2014-02-07')

이 접근 방식을 사용하면 시간 구성 요소에 관계없이 '2014-02-07'에 생성된 레코드를 검색할 수 있습니다.

WHERE 절에서 함수를 피하는 이유

다음에서 기능(예: 변환)을 사용하지 않는 것이 좋습니다. 두 가지 주요 이유에 대한 WHERE 절:

  1. 인덱스 최적화 손실: 데이터에 대한 함수로 인해 최적화 프로그램이 인덱스를 사용하지 못하게 되어 쿼리 속도가 느려질 수 있습니다.
  2. 높은 계산 오버헤드: 함수를 대규모 작업에 적용하면 상당한 계산 오버헤드가 발생할 수 있습니다.

날짜 범위 모범 사례

날짜 및 시간 범위를 쿼리할 때 최적의 성능과 정확성을 위해서는 다음 형식을 사용하는 것이 가장 좋습니다.

WHERE col >= '20120101' AND col < '20120201'

위 내용은 SQL Server에서 날짜 부분만 사용하여 날짜/시간 값을 효율적으로 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.