I MariaDB, HOUR()
er en indbygget dato- og tidsfunktion, der returnerer timen fra et givet tidsudtryk.
Den accepterer ét argument, som er det tidspunkt, du vil udtrække timen fra.
For klokkeslætsværdier returnerer den timen som et tal i området 0
til 23
. Men intervallet TIME
værdier kan være meget større, og derfor kan den returnerede værdi være meget højere end 23
.
Returværdien er altid positiv, selvom der er angivet et negativt tidspunkt.
Syntaks
Syntaksen ser sådan ud:
HOUR(time)
Hvor time
er tidsudtrykket at få timen fra.
Eksempel
Her er et eksempel:
SELECT HOUR('10:30:45');
Resultat:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Dato-tidsværdier
Det fungerer også med datetime-værdier:
SELECT HOUR('2030-02-01 10:30:45');
Resultat:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Større timer
TIME
værdier kan være i området '-838:59:59.999999'
til '838:59:59.999999'
.
Derfor kan timedelen være meget højere end 23
:
SELECT HOUR('578:30:45');
Resultat:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Negative tidspunkter
Negative tidspunkter giver et positivt resultat.
Eksempel
SELECT HOUR('-578:30:45');
Resultat:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Uden for rækkevidde timer
Tidsværdier uden for området '-838:59:59.999999'
til '838:59:59.999999'
returner 838
.
Eksempel:
SELECT HOUR('978:30:45');
Resultat (ved hjælp af lodret output):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Aktuel dato
Vi kan sende NOW()
som datetime-argument for at bruge det aktuelle klokkeslæt:
SELECT
NOW(),
HOUR(NOW());
Resultat:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Ugyldige argumenter
Når et ugyldigt argument sendes, HOUR()
returnerer null
:
SELECT HOUR('Ten Thirty AM');
Resultat:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Manglende argument
Kalder HOUR()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
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
Og endnu et eksempel:
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