DATEDIFF(Transact-SQL)
지정한 두 날짜 사이에 있는 날짜와 시간 경계의 수를 반환합니다.
구문
DATEDIFF ( datepart , startdate , enddate )
인수
datepart
차이를 계산할 날짜 부분을 지정하는 매개 변수입니다. 다음 표에서는 SQL Server 2005에서 인식할 수 있는 날짜 부분 및 약어를 보여 줍니다. 이러한 날짜 부분 및 약어는 사용자 선언 변수로서 제공할 수 없습니다.날짜 부분 약어 year
yy, yyyy
quarter
qq, q
month
mm, m
dayofyear
dy, y
day
dd, d
week
wk, ww
Hour
hh
minute
mi, n
second
ss, s
millisecond
ms
startdate -
계산의 시작 날짜입니다. startdate는 datetime 또는 smalldatetime 값을 반환하는 식이거나 날짜 형식으로 된 문자열입니다.smalldatetime은 분 단위까지만 정확하므로 smalldatetime 값을 사용할 경우 초와 밀리초는 항상 0입니다.
연도의 마지막 두 자리 숫자만 지정할 경우 two-digit year cutoff 구성 옵션 값의 마지막 두 자리 숫자보다 작거나 같은 값은 구분 기준 연도와 동일한 세기에 해당합니다. 이 옵션 값의 마지막 두 자리 숫자보다 큰 값은 구분 기준 연도의 전 세기에 해당합니다. 예를 들어 two-digit year cutoff가 2049(기본값)일 경우 49는 2049년으로 해석되고 2050은 1950년으로 해석됩니다. 이러한 모호성을 피하려면 네 자리 연도를 사용하십시오.
시간 값을 지정하는 방법은 시간 형식을 참조하십시오. 날짜를 지정하는 방법은 날짜 및 시간(Transact-SQL)을 참조하십시오.
- enddate
계산의 종료 날짜입니다. enddate는 datetime 또는 smalldatetime 값을 반환하는 식이거나 날짜 형식으로 된 문자열입니다.
반환 유형
integer
주의
enddate에서 startdate를 뺍니다. startdate가 enddate보다 나중 날짜이면 음수 값이 반환됩니다.
DATEDIFF의 경우 결과가 정수 값의 범위를 벗어나면 오류가 발생합니다. 밀리초의 최대값은 24일, 20시간, 31분, 23.647초입니다. 초의 최대값은 68년입니다.
분, 초, 밀리초 등 교차 경계 수를 계산하는 방법을 통해 DATEDIFF의 결과는 모든 데이터 형식에서 일관성 있게 유지됩니다. 결과는 첫 번째 날짜와 두 번째 날짜 사이에 있는 datepart 경계 수와 같은 부호 있는 정수 값입니다. 예를 들어 1월 4일 일요일과 1월 11일 일요일 사이의 주 수는 1입니다.
예
다음 예에서는 현재 날짜와 AdventureWorks
데이터베이스의 제품 주문 날짜 사이의 일 수 차이를 확인합니다.
USE AdventureWorks;
GO
SELECT DATEDIFF(day, OrderDate, GETDATE()) AS NumberOfDays
FROM Sales.SalesOrderHeader;
GO
참고 항목
참조
CAST 및 CONVERT(Transact-SQL)
데이터 형식(Transact-SQL)
날짜 및 시간 함수(Transact-SQL)
관련 자료
ISO 8601 형식
영문자 날짜 형식
숫자 날짜 형식
ODBC Datetime 형식
시간 형식
구분되지 않은 문자열 형식