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