datetime
필드SQL Server datetime
필드에서 날짜 부분만 추출하는 것은 일반적인 작업입니다. 여기서는 효율성을 위해 널리 사용되는 두 가지 접근 방식을 비교합니다.
방법 A:
<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>
방법 B:
<code class="language-sql">SELECT CAST(CONVERT(CHAR(11), GETDATE(), 113) AS DATETIME)</code>
성능 벤치마크
두 가지 방법 모두 일반적으로 빠르지만 방법 A는 특히 대규모 데이터 세트에서 지속적으로 뛰어난 성능을 보여줍니다. 백만 행 데이터 세트에 대한 테스트에서 방법 A를 사용하면 CPU 소비가 크게 낮아져 효율성이 강조됩니다.
추가 요인
속도 외에도 다른 고려 사항이 방법 선택에 영향을 미칩니다.
CONVERT
부터 CHAR
까지 사용하면 로캘별 날짜 형식에 잠재적인 문제가 발생할 수 있습니다.FLOAT
를 활용하며 이는 저장소에 영향을 미칠 수 있습니다.SQL Server 2008 이상
SQL Server 2008 및 후속 버전의 경우 CAST
함수는 간소화된 대안을 제공합니다.
<code class="language-sql">CAST(GETDATE() AS DATE)</code>
이 접근 방식은 효율적이며 DATE
데이터 유형을 직접 반환합니다.
인덱스 최적화
결정적으로 CAST
절 내에 함수나 WHERE
연산을 적용하면 인덱스 활용도가 저하되어 쿼리 성능에 영향을 줄 수 있습니다. 최적의 쿼리 속도를 유지하려면 가능하면 이러한 관행을 피하세요.
추천
성능과 적응성을 고려할 때 SQL Server의 datetime
필드에서 시간 구성 요소를 제거하는 데 권장되는 방법은 다음과 같습니다.
<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>
위 내용은 SQL Server 날짜/시간 필드에서 시간 부분을 효율적으로 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!