다음을 통해 공유


DATEDIFF(SSIS 식)

지정한 두 날짜 간에 교차되는 날짜와 시간 경계값을 반환합니다. datepart 매개 변수는 비교할 날짜 및 시간 범위를 식별합니다.

구문

DATEDIFF(datepart, startdate, endate)

인수

  • datepart
    비교하여 값을 반환할 날짜 부분을 지정하는 매개 변수입니다.

  • startdate
    간격의 시작 날짜입니다.

  • endate
    간격의 종료 날짜입니다.

결과 형식

DT_I4

주의

다음 표에서는 식 계산기가 인식하는 날짜 부분 및 약어를 나열합니다.

날짜 부분

약어

Year

yy, yyyy

Quarter

qq, q

Month

mm, m

Dayofyear

dy, y

Day

dd, d

Week

wk, ww

Weekday

dw, w

Hour

Hh

Minute

mi, n

Second

ss, s

Millisecond

Ms

인수가 Null이면 DATEDIFF 결과도 Null입니다.

날짜 리터럴은 다음의 날짜 데이터 형식 중 하나로 명시적 캐스팅되어야 합니다. 자세한 내용은 Integration Services 데이터 형식을 참조하십시오.

[!참고]

날짜 리터럴이 DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 및 DT_DBTIME2 날짜 데이터 형식 중 하나로 명시적 캐스팅되면 식의 유효성 검사가 실패합니다.

올바른 날짜가 아니거나, 날짜 또는 시간 단위가 문자열이 아니거나, 시작 날짜가 날짜가 아니거나, 종료 날짜가 날짜가 아니면 오류가 발생합니다.

종료 날짜가 시작 날짜보다 빠르면 음수가 반환됩니다. 시작 날짜와 종료 날짜가 같거나 동일한 간격 내에 있으면 0이 반환됩니다.

이 예에서는 두 날짜 리터럴 사이의 일 수를 계산합니다. 날짜 형식이 "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)