DATEDIFF SQL: что это и как использовать?
Функция DATEDIFF в SQL используется для нахождения разницы между двумя датами в единицах времени (например, днях, часах, минутах или секундах). Она имеет следующий синтаксис:
DATEDIFF(interval, start_date, end_date)
где:
- interval - интервал времени, для которого нужно вычислить разницу между датами. Может быть одним из следующих значений: year, quarter, month, dayofyear, day, week, hour, minute, second;
- start_date - начальная дата;
- end_date - конечная дата.
Примеры:
1. Вычисление разницы между двумя датами в днях:
SELECT DATEDIFF(day, '2021-01-01', '2021-01-10');
Результат - 9.
2. Вычисление разницы между двумя датами в месяцах:
SELECT DATEDIFF(month, '2021-01-01', '2021-06-01');
Результат - 5.
3. Вычисление разницы между двумя датами в минутах:
SELECT DATEDIFF(minute, '2021-01-01 12:00:00', '2021-01-01 12:30:00');
Результат - 30.
Также возможно использование функции DATEDIFF в комбинации с другими функциями, например, для вычисления возраста человека в годах на основе его даты рождения:
SELECT DATEDIFF(year, '1990-01-01', GETDATE()) as Age;
Результат - текущий возраст человека в годах.
Пример кода:
CREATE TABLE purchases (
PurchaseID int NOT NULL,
PurchaseDate datetime NOT NULL,
Cost decimal(8,2) NOT NULL
);
INSERT INTO purchases (PurchaseID, PurchaseDate, Cost)
VALUES
(1, '2021-01-01 12:00:00', 100.50),
(2, '2021-02-01 11:00:00', 200.00),
(3, '2021-03-01 10:00:00', 50.00),
(4, '2021-04-01 09:00:00', 70.00);
-- Вычисление разницы между датами покупок в днях
SELECT DATEDIFF(day, MIN(PurchaseDate), MAX(PurchaseDate)) as DaysBetweenPurchases
FROM purchases;
-- Результат - 90 (разница между 2021-01-01 и 2021-04-01 в днях)