In MariaDB TIME_TO_SEC()
ist eine eingebaute Datums- und Zeitfunktion, die ihr Zeitargument zurückgibt, konvertiert in Sekunden.
Syntax
Die Syntax lautet wie folgt:
TIME_TO_SEC(time)
Wo time
ist der in Sekunden umzurechnende Zeitwert.
Beispiel
Hier ist ein Beispiel:
SELECT TIME_TO_SEC('00:01:00');
Ergebnis:
+-------------------------+ | TIME_TO_SEC('00:01:00') | +-------------------------+ | 60 | +-------------------------+
Hier ist es mit ein paar anderen Zeitwerten:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46');
Ergebnis:
+-------------------------+-------------------------+ | TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') | +-------------------------+-------------------------+ | 3600 | 56266 | +-------------------------+-------------------------+
Mikrosekunden
TIME_TO_SEC()
unterstützt Mikrosekunden:
SELECT TIME_TO_SEC('00:01:00.123456');
Ergebnis:
+--------------------------------+ | TIME_TO_SEC('00:01:00.123456') | +--------------------------------+ | 60.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_TO_SEC('838:59:59');
Ergebnis:
+--------------------------+ | TIME_TO_SEC('838:59:59') | +--------------------------+ | 3020399 | +--------------------------+
Negative Zeitwerte
Hier ist ein Beispiel mit einem negativen Zeitwert:
SELECT TIME_TO_SEC('-820:38:15');
Ergebnis:
+---------------------------+ | TIME_TO_SEC('-820:38:15') | +---------------------------+ | -2954295 | +---------------------------+
Zeiten außerhalb des Bereichs
Wenn Sie jedoch einen Zeitwert außerhalb des Bereichs angeben, werden die Sekunden für die obere Grenze dieses Bereichs zurückgegeben, zusammen mit einer Warnung:
SELECT TIME_TO_SEC('920:38:15');
Ergebnis:
+--------------------------+ | TIME_TO_SEC('920:38:15') | +--------------------------+ | 3020399 | +--------------------------+ 1 row in set, 1 warning (0.002 sec)
Sehen wir uns die Warnung an:
SHOW WARNINGS;
Ergebnis:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Ungültiges Argument
Wenn ungültige Argumente übergeben werden, TIME_TO_SEC()
gibt null
zurück mit einer Warnung:
SELECT TIME_TO_SEC('Homer');
Ergebnis:
+----------------------+ | TIME_TO_SEC('Homer') | +----------------------+ | NULL | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Überprüfen Sie die Warnung:
SHOW WARNINGS;
Ergebnis:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Fehlendes Argument
Aufruf von TIME_TO_SEC()
mit der falschen Anzahl von Argumenten oder ohne Übergabe von Argumenten führt zu einem Fehler:
SELECT TIME_TO_SEC();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
Und noch ein Beispiel:
SELECT TIME_TO_SEC('10:09:10', 2);
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'