MySQL HOUR()
funktion bruges til at returnere timekomponenten fra en tidsværdi.
Returværdien for en klokkeslætsværdi vil være mellem 0 og 23, men området returneret af denne funktion kan være meget større på grund af det faktum, at en tid datatypen er ikke begrænset til kun et tidspunkt på dagen (den kan også bruges til at repræsentere forløbet tid eller et tidsinterval mellem to hændelser). Det betyder, at den returnerede værdi kan være større end 24 timer eller endda en negativ værdi.
Syntaks
Syntaksen for denne funktion ser sådan ud:
HOUR(time)
Hvor time
er den tidsværdi, du vil udtrække timekomponenten fra.
Eksempel 1 – Grundlæggende brug
Her er et eksempel til at demonstrere.
SELECT HOUR('10:35:27');
Resultat:
+------------------+ | HOUR('10:35:27') | +------------------+ | 10 | +------------------+
Eksempel 2 – Mere end 24 timer
Som nævnt, hvis tidsværdien bruges til at repræsentere forløbet tid eller et tidsinterval mellem to hændelser, kan den have en timekomponent større end 24 timer. Så det følgende eksempel er helt gyldigt.
SELECT HOUR('310:35:27');
Resultat:
+-------------------+ | HOUR('310:35:27') | +-------------------+ | 310 | +-------------------+
Eksempel 3 – Negative værdier
Negative værdier er også helt gyldige for tiden datatype. Bemærk dog, at HOUR()
funktion vil returnere den som en positiv værdi:
SELECT HOUR('-310:35:27');
Resultat:
+--------------------+ | HOUR('-310:35:27') | +--------------------+ | 310 | +--------------------+
Hvis dette er et problem, og du skal have negative værdier returneret som negative værdier, skal EXTRACT()
funktion kan være det, du leder efter:
SELECT EXTRACT(HOUR FROM '-310:35:27');
Resultat:
+---------------------------------+ | EXTRACT(HOUR FROM '-310:35:27') | +---------------------------------+ | -310 | +---------------------------------+