>데이터 베이스 >MySQL 튜토리얼 >SQL Server의 날짜만 날짜 시간 값과 올바르게 비교하는 방법은 무엇입니까?

SQL Server의 날짜만 날짜 시간 값과 올바르게 비교하는 방법은 무엇입니까?

DDD
DDD원래의
2025-01-05 19:52:45141검색

How to Correctly Compare Datetime Values with Only Dates in SQL Server?

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

날짜 부분만 포함된 날짜/시간 값과 비교하여 데이터베이스 레코드를 쿼리하는 경우 , 다음을 이해하는 것이 중요합니다.

문제

다음 SQL 쿼리를 고려하세요.

Select * from [User] U
where  U.DateCreated = '2014-02-07'

사용자가 '2014-02-07 12에 생성된 경우: 30:47.220', 비교는 날짜 부분에 대해 엄격하게 수행되므로 쿼리는 데이터를 반환하지 않습니다.

해결책

날짜 시간 값을 날짜만 가지고 정확하게 비교하려면 하루의 시작과 끝을 대괄호로 묶어야 합니다.

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

이 접근 방식을 사용하면 시간에 관계없이 지정된 날짜에 생성된 레코드가 쿼리에 포함됩니다. component.

WHERE 절에서 함수 사용을 피하세요

여러 가지 이유로 WHERE 절이나 조인 조건에서 함수(예: 변환)를 사용하지 않는 것이 중요합니다.

  • 인덱스 최적화를 방지하여 쿼리를 수행할 수 있습니다. 속도가 느려집니다.
  • 각 행에 불필요한 계산이 도입되어 잠재적으로 성능이 저하될 수 있습니다.

BETWEEN 어느 쪽에도 의존하지 마세요

일반적으로 날짜 및 시간 비교에는 BETWEEN 연산자를 사용하지 않는 것이 좋습니다. 대신 다음 형식을 사용하세요.

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

이 접근 방식은 데이터 유형이나 정밀도에 관계없이 일관되게 작동하며 BETWEEN의 잠재적인 함정도 방지합니다.

위 내용은 SQL Server의 날짜만 날짜 시간 값과 올바르게 비교하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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