В 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