Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция
Область применения:
Databricks SQL
Databricks Runtime 13.3 LTS и выше
Возвращает разницу между двумя датами в днях или между двумя временными метками в определённой единице.
Синтаксис
date_diff(endDate, startDate)
date_diff(unit, start, end)
unit
{ MICROSECOND |
MILLISECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR }
Аргументы
-
endDate: конечноеDATEвыражение. -
startDate: начальноеDATEвыражение. -
unit: единица измерения. -
start: начальноеTIMESTAMPвыражение. -
end: конечноеTIMESTAMPвыражение.
Возвраты
- Для
date_diff(endDate, startDate), ,INTEGER, что представляет количество дней отstartDateдоendDate. - Для , ,
BIGINT, что представляет разность междуstartиendизмеряетсяdate_diff(unit, start, end)вunits. Эта форма является синонимом функцииtimestampdiff.
Результат отрицателен, если начальное значение больше конечного.
Функция подсчитывает число истекших единиц на основе UTC при условии, что DAY насчитывает 86 400 секунд.
Один месяц считается истекшим, когда начинается новый календарный месяц, а календарный день и время равны или больше значения начала. Последующие недели, кварталы и годы.
Примеры
> SELECT date_diff(DATE'2009-07-31', DATE'2009-07-30');
1
-- One second shy of a month elapsed
> SELECT date_diff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 11:59:59');
0
-- One month has passed even though its' not end of the month yet because day and time line up.
> SELECT date_diff(MONTH, TIMESTAMP'2021-02-28 12:00:00', TIMESTAMP'2021-03-28 12:00:00');
1
-- Start is greater than the end
> SELECT date_diff(YEAR, DATE'2021-01-01', DATE'1900-03-28');
-120