MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

Wie HOUR() in MariaDB funktioniert

In MariaDB, HOUR() ist eine integrierte Datums- und Zeitfunktion, die die Stunde aus einem gegebenen Zeitausdruck zurückgibt.

Es akzeptiert ein Argument, nämlich die Zeit, aus der Sie die Stunde extrahieren möchten.

Für Tageszeitwerte gibt es die Stunde als Zahl im Bereich 0 zurück bis 23 . Allerdings ist der Bereich von TIME Werte können viel größer sein, und daher kann der zurückgegebene Wert viel höher als 23 sein .

Der Rückgabewert ist immer positiv, auch wenn eine negative Zeit angegeben wird.

Syntax

Die Syntax lautet wie folgt:

HOUR(time)

Wo time ist der Zeitausdruck, aus dem die Stunde abgerufen werden soll.

Beispiel

Hier ist ein Beispiel:

SELECT HOUR('10:30:45');

Ergebnis:

+------------------+
| HOUR('10:30:45') |
+------------------+
|               10 |
+------------------+

Datum/Uhrzeit-Werte

Es funktioniert auch mit datetime-Werten:

SELECT HOUR('2030-02-01 10:30:45');

Ergebnis:

+-----------------------------+
| HOUR('2030-02-01 10:30:45') |
+-----------------------------+
|                          10 |
+-----------------------------+

Größere Öffnungszeiten

TIME Werte können im Bereich '-838:59:59.999999' liegen zu '838:59:59.999999' .

Daher kann der Stundenanteil viel höher als 23 sein :

SELECT HOUR('578:30:45');

Ergebnis:

+-------------------+
| HOUR('578:30:45') |
+-------------------+
|               578 |
+-------------------+

Negative Zeiten

Negative Zeiten geben ein positives Ergebnis zurück.

Beispiel

SELECT HOUR('-578:30:45');

Ergebnis:

+--------------------+
| HOUR('-578:30:45') |
+--------------------+
|                578 |
+--------------------+

Außerhalb des Bereichs Stunden

Zeitwerte außerhalb des Bereichs '-838:59:59.999999' zu '838:59:59.999999' gibt 838 zurück .

Beispiel:

SELECT HOUR('978:30:45');

Ergebnis (bei vertikaler Ausgabe):

+-------------------+
| HOUR('978:30:45') |
+-------------------+
|               838 |
+-------------------+

Aktuelles Datum

Wir können NOW() übergeben als datetime-Argument, um die aktuelle Uhrzeit zu verwenden:

SELECT 
    NOW(),
    HOUR(NOW());

Ergebnis:

+---------------------+-------------+
| NOW()               | HOUR(NOW()) |
+---------------------+-------------+
| 2021-05-16 10:50:02 |          10 |
+---------------------+-------------+

Ungültige Argumente

Wenn ein ungültiges Argument übergeben wird, HOUR() gibt null zurück :

SELECT HOUR('Ten Thirty AM');

Ergebnis:

+-----------------------+
| HOUR('Ten Thirty AM') |
+-----------------------+
|                  NULL |
+-----------------------+

Fehlendes Argument

Aufruf von HOUR() mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:

SELECT HOUR();

Ergebnis:

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

Und noch ein Beispiel:

SELECT HOUR('10:30:45', '06:30:45');

Ergebnis:

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