I MariaDB, HOUR()
är en inbyggd datum- och tidsfunktion som returnerar timmen från ett givet tidsuttryck.
Den accepterar ett argument, vilket är tiden du vill extrahera timmen från.
För värden för tid på dagen returnerar den timmen som ett tal i intervallet 0
till 23
. Men intervallet TIME
värden kan vara mycket större, och därför kan det returnerade värdet vara mycket högre än 23
.
Returvärdet är alltid positivt, även om en negativ tid anges.
Syntax
Syntaxen ser ut så här:
HOUR(time)
Där time
är tidsuttrycket att hämta timmen från.
Exempel
Här är ett exempel:
SELECT HOUR('10:30:45');
Resultat:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Datetime-värden
Det fungerar också med datetime-värden:
SELECT HOUR('2030-02-01 10:30:45');
Resultat:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Större timmar
TIME
värden kan ligga inom intervallet '-838:59:59.999999'
till '838:59:59.999999'
.
Därför kan timdelen vara mycket högre än 23
:
SELECT HOUR('578:30:45');
Resultat:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Negativa tider
Negativa tider ger ett positivt resultat.
Exempel
SELECT HOUR('-578:30:45');
Resultat:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Timmar utanför intervallet
Tidsvärden utanför intervallet '-838:59:59.999999'
till '838:59:59.999999'
returnera 838
.
Exempel:
SELECT HOUR('978:30:45');
Resultat (med vertikal utdata):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Aktuellt datum
Vi kan skicka NOW()
som datetime-argument för att använda den aktuella tiden:
SELECT
NOW(),
HOUR(NOW());
Resultat:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Ogiltiga argument
När ett ogiltigt argument skickats, HOUR()
returnerar null
:
SELECT HOUR('Ten Thirty AM');
Resultat:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Argument saknas
Anropar HOUR()
med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT HOUR();
Resultat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1
Och ett annat exempel:
SELECT HOUR('10:30:45', '06:30:45');
Resultat:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1