DATEDIFF (службы SSIS)
Возвращает числовое значение границ дат или времени между двумя указанными датами. Параметр datepart указывает границы даты и времени, которые необходимо сравнить.
Синтаксис
DATEDIFF(datepart, startdate, endate)
Аргументы
- datepart
Параметр, который указывает, какую часть даты сравнивать и для какой вернуть значение.
- startdate
Начальная дата периода.
- endate
Конечная дата периода.
Типы результата
DT_I4
Замечания
В следующей таблице перечислены части дат и сокращения, распознаваемые средством оценки выражений.
Часть даты | Сокращения |
---|---|
Год |
гг,гггг |
Квартал |
квкв, кв |
Месяц |
мм, м |
День года |
дг, г |
День |
дд, д |
Неделя |
нед, нн |
День недели |
дн, н |
Час |
Чч |
Минута |
мин, м |
Секунда |
сек, с |
Миллисекунда |
мс |
DATEDIFF возвращает NULL при аргументе NULL.
Литерал даты должен быть точно приведен к одному типу данных дат.
Произойдет ошибка при передаче недопустимой даты, а также в случае, если элемент времени и даты не является строкой или если дата начала либо конца не является типом данных даты.
Если конечная дата является более ранней, чем дата начала, то функция возвращает отрицательное число. Если начальные и конечные даты равны друг другу или находятся в одном периоде, то функция возвращает ноль.
Примеры
Этот пример вычисляет количество дней между двумя литералами даты. Если формат даты «мм/дд/гггг», то эта функция возвращает 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)