DATEDIFF (выражение SSIS)

Область применения:SQL Server среда выполнения интеграции SSIS в Фабрика данных Azure

Возвращает числовое значение границ дат или времени между двумя указанными датами. Параметр datepart указывает границы даты и времени, которые необходимо сравнить.

Синтаксис

  
DATEDIFF(datepart, startdate, endate)  

Аргументы

datepart
Параметр, который указывает, какую часть даты сравнивать и для какой вернуть значение.

startdate
Начальная дата периода.

endate
Это конечная дата интервала.

Типы результата

DT_I4

Замечания

В следующей таблице перечислены части дат и сокращения, распознаваемые средством оценки выражений.

часть_даты Сокращения
Год yy, yyy
Квартал qq, q
месяц мм, м
День года dy, y
день dd, d
неделя wk, ww
Будний день ДВ, В
Час Hh
Минута Ми, Н
Секунда ss, s
Миллисекунда Г-жа

DATEDIFF возвращает результат NULL, если любой аргумент имеет значение NULL.

Литерал даты должен быть явно приведен к одному из типов данных даты. Дополнительные сведения см. в разделе Integration Services Data Types.

Ошибка возникает, если дата недопустима, если единица даты или времени не является строкой, если начальная дата не является датой или если конечная дата не является датой.

Если конечная дата является более ранней, чем начальная, то функция возвращает отрицательное число. Если начальные и конечные даты равны друг другу или находятся в одном интервале, то функция возвращает ноль.

Примеры выражений SSIS

Этот пример рассчитывает количество дней между двумя литералами даты. Если дата имеет формат «мм/дд/гггг», то эта функция возвращает 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)