В MariaDB, PERIOD_DIFF()
е вградена функция за дата и час, която връща броя на месеците между два периода.
Синтаксис
Синтаксисът е така:
PERIOD_DIFF(P1,P2)
Където P1
и P2
са периодите за получаване на разликата между.
И двата аргумента са във формат ГГММ или ГГГГММ. Те не са стойности за дата.
Пример
Ето един пример:
SELECT PERIOD_DIFF(202108, 202101);
Резултат:
+-----------------------------+ | PERIOD_DIFF(202108, 202101) | +-----------------------------+ | 7 | +-----------------------------+
В този пример има седем месеца разлика между двата периода.
Превключете поръчката
Ако първият период е по-ранен от втория, резултатът е отрицателна стойност.
Ето какво се случва, когато сменя реда на аргументите в предишния пример:
SELECT PERIOD_DIFF(202101, 202108);
Резултат:
+-----------------------------+ | PERIOD_DIFF(202101, 202108) | +-----------------------------+ | -7 | +-----------------------------+
Двуцифрени години
Ако някой от аргументите съдържа двуцифрена година, стойностите от 00 до 69 се преобразуват в от 2000 до 2069, докато стойностите от 70 се преобразуват в 1970 нагоре.
Пример:
SELECT
PERIOD_DIFF(6911, 6912),
PERIOD_DIFF(6911, 7001);
Резултат:
+-------------------------+-------------------------+ | PERIOD_DIFF(6911, 6912) | PERIOD_DIFF(6911, 7001) | +-------------------------+-------------------------+ | -1 | 1198 | +-------------------------+-------------------------+
Липсващ аргумент
Извикване на PERIOD_DIFF()
с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT PERIOD_DIFF();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'
И още един пример:
SELECT PERIOD_DIFF( 6912 );
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'PERIOD_DIFF'