В MariaDB, HOUR()
е вградена функция за дата и час, която връща часа от даден времеви израз.
Той приема един аргумент, който е времето, от което искате да извлечете часа.
За стойности за времето от деня той връща часа като число в диапазона 0
до 23
. Въпреки това, диапазонът от TIME
стойностите могат да бъдат много по-големи и следователно върнатата стойност може да бъде много по-висока от 23
.
Връщаната стойност винаги е положителна, дори ако е предоставено отрицателно време.
Синтаксис
Синтаксисът е така:
HOUR(time)
Където time
е изразът за време, от който да се получи часът.
Пример
Ето един пример:
SELECT HOUR('10:30:45');
Резултат:
+-----------------+| HOUR('10:30:45') |+------------------+| 10 |+------------------+
Стойности за дата и час
Работи и със стойности за дата и час:
SELECT HOUR('2030-02-01 10:30:45');
Резултат:
+----------------------------+| HOUR('2030-02-01 10:30:45') |+----------------------------+| 10 |+-----------------------------+
По-голямо работно време
TIME
стойностите могат да бъдат в диапазона '-838:59:59.999999'
до '838:59:59.999999'
.
Следователно часовата част може да бъде много по-висока от 23
:
SELECT HOUR('578:30:45');
Резултат:
+------------------+| HOUR('578:30:45') |+-------------------+| 578 |+------------------+
Отрицателни времена
Отрицателните времена връщат положителен резултат.
Пример
SELECT HOUR('-578:30:45');
Резултат:
+-------------------+| ЧАС('-578:30:45') |+-------------------+| 578 |+-------------------+
Часове извън обхват
Стойности за време извън диапазона '-838:59:59.999999'
до '838:59:59.999999'
върнете 838
.
Пример:
SELECT HOUR('978:30:45');
Резултат (с помощта на вертикален изход):
+------------------+| ЧАС('978:30:45') |+-------------------+| 838 |+------------------+
Текуща дата
Можем да предадем NOW()
като аргумент datetime за използване на текущото време:
SELECT
NOW(),
HOUR(NOW());
Резултат:
<пред>+---------------------+------------+| СЕГА() | ЧАС(СЕГА()) |+---------------------+------------+| 16.05.2021 10:50:02 | 10 |+---------------------+------------+Невалидни аргументи
Когато се подаде невалиден аргумент, HOUR()
връща null
:
SELECT HOUR('Ten Thirty AM');
Резултат:
<пред>+-----------------------+| HOUR('Десет и тридесет сутринта') |+-----------------------+| NULL |+-----------------------+Липсващ аргумент
Извикване на HOUR()
с грешен брой аргументи или без подаване на аргументи, води до грешка:
SELECT HOUR();
Резултат:
ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB за правилния синтаксис, който да използвате близо до ')' на ред 1
И още един пример:
SELECT HOUR('10:30:45', '06:30:45');
Резултат:
ГРЕШКА 1064 (42000):Имате грешка във вашия SQL синтаксис; проверете ръководството, което съответства на вашата версия на сървъра на MariaDB за правилния синтаксис, който да използвате близо до „06:30:45“)“ на ред 1