>데이터 베이스 >MySQL 튜토리얼 >SQL Server의 DateTime 값에서 날짜 부분을 효율적으로 추출하려면 어떻게 해야 합니까?

SQL Server의 DateTime 값에서 날짜 부분을 효율적으로 추출하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-13 07:55:42981검색

How Can I Efficiently Extract the Date Part from a DateTime Value in SQL Server?

SQL Server 날짜/시간 값에서 날짜 추출

대부분의 SQL 애플리케이션은 날짜 및 시간 구성요소가 포함된 데이터를 처리합니다. 그러나 어떤 경우에는 날짜 부분만 추출하고 시간 정보를 삭제하면 됩니다. 이는 SQL Server의 다양한 기술을 통해 효과적으로 달성할 수 있습니다.

가장 효율적인 방법

여러 가지 방법이 있지만 SQL Server의 날짜/시간에서 날짜를 추출하는 가장 효율적인 방법은 DATEADD() 함수와 DATEDIFF() 함수를 조합하여 사용하는 것입니다. 이 방법에는 다음 단계가 포함됩니다.

  1. DATEDIFF(DAY, 0, )를 사용하여 0과 주어진 날짜/시간 사이의 일 수를 계산합니다. 이 단계는 epoch(1900년 1월 1일)로부터 일일 오프셋을 효과적으로 계산합니다.
  2. DATEADD()를 DAY 필드에 적용하고 1단계의 결과를 사용하여 시간 구성 요소가 00:00:00으로 재설정된 새 날짜/시간을 얻습니다.

예:

<code class="language-sql">SELECT DATEADD(DAY, DATEDIFF(DAY, 0, '2008-09-25 12:34:56'), 0)</code>

CAST(FLOOR(CAST(... AS FLOAT)) AS DATETIME) 또는 CONVERT(DATETIME, CONVERT(VARCHAR(10), ..., 120), 120) 을 사용하여 변환하는 등의 다른 옵션과 비교하면, 방법이 가장 빠르고 효율적인 방법임이 입증되었습니다.

벤치마크

밀리초 단위의 정확한 타임스탬프와 함께 1억 3천만 개 이상의 레코드 행이 포함된 데이터 세트에 대한 성능 테스트 결과는 다음과 같습니다.

方法 CPU时间(ms)
纯SELECT 422
Floor-Cast 625
字符串转换 1953
DateAdd 531

성능은 데이터의 크기, 분포, 기타 요인에 따라 달라질 수 있다는 점에 유의할 필요가 있습니다.

위 내용은 SQL Server의 DateTime 값에서 날짜 부분을 효율적으로 추출하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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