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

SQL Server에서 시간 값만 효율적으로 비교하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-28 01:32:11178검색

How to Efficiently Compare Only Time Values in SQL Server?

SQL Server의 시간 비교

SQL Server의 시간 값을 비교할 때 날짜는 무시하고 시간 구성 요소만 고려하는 것이 중요합니다. 이를 달성하려면 날짜/시간 필드 간의 표준 비교와 비교하여 약간 다른 접근 방식이 필요합니다.

시간 값을 효율적으로 비교하려면 SQL Server가 날짜를 부동 소수점 숫자로 저장한다는 사실을 활용할 수 있습니다. 소수점 앞의 숫자는 날짜를 나타내고 그 뒤의 숫자는 시간을 나타냅니다.

예:

declare @first datetime = '2009-04-30 19:47:16.123'
declare @second datetime = '2009-04-10 19:47:16.123'

select (cast(@first as float) - floor(cast(@first as float))) -
       (cast(@second as float) - floor(cast(@second as float)))
       as Difference

이 예에서는 @ first 및 @second는 Floor()를 사용하여 각 부동 소수점 표현의 정수 부분을 빼서 ​​삭제됩니다. 결과는 시간 차이를 나타내는 분수 값이며 비교에 사용할 수 있습니다.

설명:

  • cast(@first as float) - Floor(cast(@first as float))는 @first의 시간 부분을 부동 소수점 형식으로 계산합니다.
  • cast(@second as float) - Floor(cast(@second as float))는 @second에 대해서도 동일합니다.
  • 시간 부분을 빼면 두 시간의 차이가 나옵니다.

이 방법이 더 효율적입니다. 날짜/시간 값을 문자열로 변환하여 비교하는 것보다 불필요한 데이터 변환을 방지합니다.

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

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