답변:
실제 차이는 없지만 DATETIME2
값이나 DATETIME2
값 을 반환하는 함수를 사용하기 시작 하면 오류가 발생합니다.
SELECT SYSDATETIME() - 1 AS [Incompatible]
메시지 206, 수준 16, 상태 2, 줄 17 피연산자 유형 충돌 : datetime2가 int와 호환되지 않습니다
이를 위해서는 날짜 계산 기능을 사용해야합니다.
SELECT DATEADD(DAY, -1, SYSDATETIME()) AS [Compatible]
Aaron Bertrand는이 문제에 대해 Bad Habits to Kick 시리즈 에서 간단히 설명합니다 .
다른 답변 중 하나의 주장과 달리 두 옵션은 공식적 으로 SQL Server에서 지원 하고 문서화 합니다 . 정의 되지 않은 동작 datetime - number
은 아닙니다 .
큰 장점
DATEADD(d, -2, GETUTCDATE())
자체 문서화 라는 사실입니다 . 그 목적은 즉시 명백합니다.
GETUTCDATE() - 2
반면에, datetime - number
조작 의 정의를 아는 독자에게 의존 합니다. 예, 현재 관용적 인 T-SQL 일 수 있지만 이것이 더 이상 지원되지 않는다는 사실은 datetime2
차세대 SQL Server 개발자가 더 이상 익숙하지 않을 수 있음 을 의미합니다.
date
추가 된 2008 (?) 버전 이전의 날짜 시간 유형 ). 조금 지저분합니다.