В MariaDB, DATEDIFF()
е вградена функция за дата и час, която връща разликата в дни между две дати.
Той приема два аргумента, като и двата са изрази за дата или време. След това изважда втората дата от първата.
Синтаксис
Синтаксисът е така:
DATEDIFF(expr1,expr2)
След това връща expr1 - expr2
.
Пример
Ето един пример:
SELECT DATEDIFF('2030-01-25', '2030-01-20');
Резултат:
+--------------------------------------+ | DATEDIFF('2030-01-25', '2030-01-20') | +--------------------------------------+ | 5 | +--------------------------------------+
Ето го отново, но с разменени дати:
SELECT DATEDIFF('2030-01-20', '2030-01-25');
Резултат:
+--------------------------------------+ | DATEDIFF('2030-01-20', '2030-01-25') | +--------------------------------------+ | -5 | +--------------------------------------+
Стойности за дата и час
Ето пример, който използва стойности за дата и час:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59');
Резултат:
+--------------------------------------------------------+ | DATEDIFF('2030-01-25 00:00:00', '2030-01-20 23:59:59') | +--------------------------------------------------------+ | 5 | +--------------------------------------------------------+
Ето още един пример:
SELECT DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59');
Резултат:
+--------------------------------------------------------+ | DATEDIFF('2030-01-25 00:00:00', '2030-01-25 23:59:59') | +--------------------------------------------------------+ | 0 | +--------------------------------------------------------+
В този случай, въпреки че беше почти цял ден, не беше съвсем, така че резултатът е 0
.
Текуща дата
Тук предаваме NOW()
като втори аргумент:
SELECT
NOW(),
DATEDIFF('2030-01-20', NOW());
Резултат:
+---------------------+-------------------------------+ | NOW() | DATEDIFF('2030-01-20', NOW()) | +---------------------+-------------------------------+ | 2021-05-10 10:03:08 | 3177 | +---------------------+-------------------------------+
В този случай между сега и втората дата има 3177 дни.
Невалидни аргументи
Когато се подадат невалидни аргументи, DATEDIFF()
връща null
:
SELECT DATEDIFF('Homer', 'Simpson');
Резултат:
+------------------------------+ | DATEDIFF('Homer', 'Simpson') | +------------------------------+ | NULL | +------------------------------+
Липсващ аргумент
Извикване на DATEDIFF()
грешен брой аргументи или без предаване на аргументи води до грешка:
SELECT DATEDIFF();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'
И:
SELECT DATEDIFF('2030-05-21');
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'DATEDIFF'