Nachfolgend finden Sie 4 Funktionen, mit denen Sie den Sekundenteil eines Zeitwerts in MariaDB zurückgeben können.
Die SECOND()
Funktion
Die SECOND()
Funktion gibt den Sekundenteil einer gegebenen TIME
zurück oder DATETIME
Ausdruck. Es akzeptiert ein Argument, nämlich die Zeit, aus der Sie die Sekunden extrahieren möchten.
Beispiel:
SELECT SECOND('03:45:30');
Ergebnis:
+--------------------+ | SECOND('03:45:30') | +--------------------+ | 30 | +--------------------+
TIME
Werte können im Bereich '-838:59:59.999999'
liegen zu '838:59:59.999999'
. Dazu gehören Mikrosekunden, aber SECOND()
gibt nur den Sekundenteil zurück (es gibt ein MICROSECOND()
Funktion zur Rückgabe von Mikrosekunden).
TIME
Werte können auch negativ sein. In solchen Fällen SECOND()
gibt einen positiven Wert zurück.
Hier ist ein negativer Zeitwert mit einem Mikrosekundenanteil:
SELECT SECOND('-838:59:59.999999');
Ergebnis:
+-----------------------------+ | SECOND('-838:59:59.999999') | +-----------------------------+ | 59 | +-----------------------------+
Der Sekundenteil wird wie erwartet extrahiert.
Der EXTRACT()
Funktion
Der EXTRACT()
Mit der Funktion können Sie eine bestimmte Einheit aus dem Datums-/Uhrzeitwert extrahieren. Daher können Sie es verwenden, um die Sekunden (sowie andere Einheiten) aus dem Zeitwert zu extrahieren.
Beispiel:
SELECT EXTRACT(SECOND FROM '10:47:01');
Ergebnis:
+---------------------------------+ | EXTRACT(SECOND FROM '10:47:01') | +---------------------------------+ | 1 | +---------------------------------+
Der TIME_FORMAT()
Funktion
Das TIME_FORMAT()
Mit der Funktion können Sie einen Zeitwert basierend auf einer Formatzeichenfolge formatieren. Der Formatstring gibt an, wie die Uhrzeit formatiert werden soll.
Sie können daher diese Funktion verwenden, um die Sekunden (sowie Minuten und Stunden) von der Uhrzeit zurückzugeben.
Der %s
und %S
Formatbezeichner geben beide die Sekunden mit zwei Ziffern zurück:
SELECT
TIME_FORMAT('10:07:30', '%s'),
TIME_FORMAT('10:07:30', '%S');
Ergebnis:
+-------------------------------+-------------------------------+ | TIME_FORMAT('10:07:30', '%s') | TIME_FORMAT('10:07:30', '%S') | +-------------------------------+-------------------------------+ | 30 | 30 | +-------------------------------+-------------------------------+
Sie können auch den $f
verwenden Formatbezeichner zur Rückgabe von sechsstelligen Sekundenbruchteilen:
SELECT
TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds",
TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";
Ergebnis:
+--------------+-----------+ | Microseconds | Both | +--------------+-----------+ | 123456 | 30.123456 | +--------------+-----------+
Das TIME_FORMAT()
Die Funktion akzeptiert eine Teilmenge der Formatzeichenfolgen, die mit DATE_FORMAT()
verwendet werden können Funktion. Siehe MariaDB-Formatzeichenfolgen für eine vollständige Liste von Formatzeichenfolgen/Bezeichnern, die mit DATE_FORMAT()
verwendet werden können . Das TIME_FORMAT()
Die Funktion akzeptiert nur Formatbezeichner für Stunden, Minuten und Sekunden/Teilsekunden. Jeder andere Formatbezeichner führt zu null
oder 0
zurückgegeben.
Das DATE_FORMAT()
Funktion
Das DATE_FORMAT()
Mit der Funktion können Sie einen Datums- oder Datumszeitwert basierend auf einer Formatzeichenfolge formatieren. Der Formatstring gibt an, wie das Datum/die Uhrzeit formatiert werden soll.
Wir können daher dieselben Formatbezeichner verwenden, die wir mit TIME_FORMAT()
verwendet haben Funktion im vorherigen Beispiel. Jedoch DATE_FORMAT()
akzeptiert keine TIME
Wert, also müssen wir ein DATETIME
übergeben Wert.
SELECT DATE_FORMAT('2023-01-01 10:07:30', '%s');
Ergebnis:
+------------------------------------------+ | DATE_FORMAT('2023-01-01 10:07:30', '%s') | +------------------------------------------+ | 30 | +------------------------------------------+
Vergeht nur eine TIME
Wert funktioniert nicht mit dieser Funktion:
SELECT DATE_FORMAT('10:07:30', '%s') AS '%s';
Ergebnis:
+------+ | %s | +------+ | 00 | +------+