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

Wie TIME() in MariaDB funktioniert

In MariaDB TIME() ist eine integrierte Datums- und Zeitfunktion, die den Zeitteil aus einem gegebenen Zeit- oder Datumszeitausdruck extrahiert und als Zeichenfolge zurückgibt.

Es akzeptiert ein Argument, nämlich den Zeit- oder Datumszeitwert, für den Sie die Zeit extrahieren möchten.

Syntax

Die Syntax lautet wie folgt:

TIME(expr)

Wobei expr ist der Zeit- oder Datumszeitausdruck, für den die Zeit extrahiert werden soll.

Beispiel

Hier ist ein Beispiel zur Veranschaulichung:

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

Ergebnis:

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

Zeitwerte

Hier ist ein Beispiel, das die Zeit aus einem Zeitwert extrahiert:

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

Ergebnis:

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

Mikrosekunden

Hier ist ein Beispiel, das Mikrosekunden enthält:

SELECT TIME('2030-02-01 10:30:45.123456');

Ergebnis:

+------------------------------------+
| TIME('2030-02-01 10:30:45.123456') |
+------------------------------------+
| 10:30:45.123456                    |
+------------------------------------+

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 TIME('578:30:45');

Ergebnis:

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

Negative Zeiten

Negative Zeiten sind gültig:

Beispiel

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

Ergebnis:

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

Außerhalb des Bereichs Stunden

Zeitwerte außerhalb des Bereichs '-838:59:59.999999' zu '838:59:59.999999' sind an der relevanten Grenze begrenzt und enthalten eine Warnung.

Beispiel:

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

Ergebnis (bei vertikaler Ausgabe):

+-------------------+
| TIME('978:30:45') |
+-------------------+
| 838:59:59         |
+-------------------+
1 row in set, 1 warning (0.003 sec)

Sehen wir uns die Warnung an:

SHOW WARNINGS;

Ergebnis (bei vertikaler Ausgabe):

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '978:30:45' |
+---------+------+---------------------------------------------+

Aktuelles Datum

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

SELECT 
    NOW(),
    TIME(NOW());

Ergebnis:

+---------------------+-------------+
| NOW()               | TIME(NOW()) |
+---------------------+-------------+
| 2021-05-27 10:24:23 | 10:24:23    |
+---------------------+-------------+

Ungültige Argumente

Wenn ein ungültiges Argument übergeben wird, TIME() gibt null zurück mit einer Warnung:

SELECT TIME('Ten Thirty AM');

Ergebnis:

+-----------------------+
| TIME('Ten Thirty AM') |
+-----------------------+
| NULL                  |
+-----------------------+
1 row in set, 1 warning (0.002 sec)

Überprüfen Sie die Warnung:

SHOW WARNINGS;

Ergebnis:

+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1292 | Incorrect time value: 'Ten Thirty AM' |
+---------+------+---------------------------------------+

Fehlendes Argument

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

SELECT TIME();

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 TIME('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