지정된 두 날짜 사이에 교차된 날짜 및 시간 경계의 수를 반환합니다. datepart 매개 변수는 비교할 날짜 및 시간 경계를 식별합니다.
문법
DATEDIFF(datepart, startdate, endate)
주장들
datepart
값을 비교하고 반환할 날짜의 일부를 지정하는 매개 변수입니다.
startdate
간격의 시작 날짜입니다.
endate
간격의 종료 날짜입니다.
결과 형식
DT_I4 (이 명칭은 번역이 필요하지 않은 기술 용어일 수 있습니다)
비고
다음 표는 식 평가기에서 인식하는 날짜 요소와 약어를 나열합니다.
| 날짜 부분 | 약어 |
|---|---|
| 연도 | yyy, yyyy |
| 분기 | qq, q |
| 월 | 밀리미터(mm), 미터(m) |
| 연중일 | dy, y |
| 하루 | dd, d |
| 주 | wk, ww |
| 평일 | dw, w |
| 한 시간 | Hh |
| 분 | mi, n |
| 두 번째 | ss, s |
| 밀리초 | Ms(Ms) |
인수가 null이면 DATEDIFF는 null 결과를 반환합니다.
날짜 리터럴은 날짜 데이터 형식 중 하나로 명시적으로 캐스팅되어야 합니다. 자세한 내용은 Integration Services 데이터 형식을 참조하세요.
날짜가 유효하지 않거나, 날짜 또는 시간 단위가 문자열이 아니거나, 시작 날짜가 날짜가 아니거나, 종료 날짜가 날짜가 아닌 경우 오류가 발생합니다.
종료 날짜가 시작 날짜보다 이전인 경우 함수는 음수를 반환합니다. 시작 날짜와 끝 날짜가 같거나 같은 간격 내에 있는 경우 함수는 0을 반환합니다.
SSIS 식 예제
다음은 두 날짜 리터럴 사이의 일 수를 계산하는 예제입니다. 날짜가 "mm/dd/yyyy" 형식이면 함수는 7을 반환합니다.
DATEDIFF("dd", (DT_DBTIMESTAMP)"8/1/2003", (DT_DBTIMESTAMP)"8/8/2003")
다음은 날짜 리터럴과 현재 날짜 사이의 월 수를 반환하는 예제입니다.
DATEDIFF("mm", (DT_DBTIMESTAMP)"8/1/2003",GETDATE())
다음은 ModifiedDate 열의 날짜와 YearEndDate 변수 사이의 주 수를 반환하는 예제입니다.
YearEndDate에 데이터 형식이 있는 date 경우 명시적 캐스팅이 필요하지 않습니다.
DATEDIFF("Week", ModifiedDate,@YearEndDate)
또한 참조하십시오
DATEADD(SSIS 식)
DATEPART(SSIS 식)
DAY(SSIS 식)
MONTH(SSIS 식)
YEAR (SSIS 식)
함수(SSIS 식)