In MariaDB, HOUR()
is een ingebouwde datum- en tijdfunctie die het uur van een bepaalde tijduitdrukking retourneert.
Het accepteert één argument, namelijk de tijd waaruit je het uur wilt halen.
Voor waarden voor de tijd van de dag wordt het uur geretourneerd als een getal in het bereik 0
tot 23
. Het bereik van TIME
waarden kunnen veel groter zijn en daarom kan de geretourneerde waarde veel hoger zijn dan 23
.
De retourwaarde is altijd positief, zelfs als er een negatieve tijd is opgegeven.
Syntaxis
De syntaxis gaat als volgt:
HOUR(time)
Waar time
is de tijduitdrukking om het uur uit te halen.
Voorbeeld
Hier is een voorbeeld:
SELECT HOUR('10:30:45');
Resultaat:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Datum/tijd-waarden
Het werkt ook met datetime-waarden:
SELECT HOUR('2030-02-01 10:30:45');
Resultaat:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Grotere uren
TIME
waarden kunnen in het bereik liggen '-838:59:59.999999'
naar '838:59:59.999999'
.
Daarom kan het uurgedeelte veel hoger zijn dan 23
:
SELECT HOUR('578:30:45');
Resultaat:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Negatieve tijden
Negatieve tijden leveren een positief resultaat op.
Voorbeeld
SELECT HOUR('-578:30:45');
Resultaat:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Uren buiten bereik
Tijdwaarden buiten het bereik '-838:59:59.999999'
naar '838:59:59.999999'
retourneer 838
.
Voorbeeld:
SELECT HOUR('978:30:45');
Resultaat (met verticale uitvoer):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Huidige datum
We kunnen NOW()
doorgeven als het datetime-argument om de huidige tijd te gebruiken:
SELECT
NOW(),
HOUR(NOW());
Resultaat:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Ongeldige argumenten
Wanneer een ongeldig argument wordt doorgegeven, HOUR()
retourneert null
:
SELECT HOUR('Ten Thirty AM');
Resultaat:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Ontbrekend argument
Bellen HOUR()
met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:
SELECT HOUR();
Resultaat:
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
En nog een voorbeeld:
SELECT HOUR('10:30:45', '06:30:45');
Resultaat:
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