Функция date_diff
Область применения: Databricks SQL Databricks Runtime 13.3 LTS и выше
Возвращает разницу между двумя метками времени, измеряемыми в объектах unit
. date_diff
(timestamp) — это синоним для функции timestampdiff.
Синтаксис
date_diff(unit, start, end)
unit
{ MICROSECOND |
MILLISECOND |
SECOND |
MINUTE |
HOUR |
DAY |
WEEK |
MONTH |
QUARTER |
YEAR }
Аргументы
unit
: единица измерения.start
: начальное выражение TIMESTAMP.end
: конечное выражение TIMESTAMP.
Возвраты
BIGINT
.
Если start
больше end
, результат будет отрицательным.
Функция подсчитывает число истекших единиц на основе UTC
при условии, что DAY
насчитывает 86 400 секунд.
Один месяц считается истекшим, когда начинается новый календарный месяц, а календарный день и время равны или больше значения начала. Последующие недели, кварталы и годы.
Примеры
-- 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