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

Wie SEC_TO_TIME() in MariaDB funktioniert

In MariaDB SEC_TO_TIME() ist eine integrierte Datums- und Zeitfunktion, die einen Zeitwert zurückgibt, basierend auf der Anzahl von Sekunden, die als Argumente bereitgestellt werden.

Syntax

Die Syntax lautet wie folgt:

SEC_TO_TIME(seconds)

Beispiel

Hier ist ein Beispiel:

SELECT SEC_TO_TIME(1);

Ergebnis:

+----------------+
| SEC_TO_TIME(1) |
+----------------+
| 00:00:01       |
+----------------+

Hier ist noch einer:

SELECT SEC_TO_TIME(18520);

Ergebnis:

+--------------------+
| SEC_TO_TIME(18520) |
+--------------------+
| 05:08:40           |
+--------------------+

Sekunden außerhalb des Bereichs

Der Bereich des Ergebnisses ist auf den des Zeitdatentyps beschränkt. Eine Warnung tritt auf, wenn das Argument einem Wert außerhalb dieses Bereichs entspricht. Der Bereich für MariaDB-Zeitwerte ist '-838:59:59.999999' zu '838:59:59.999999' .

Wie auch immer, hier ist ein Beispiel für eine Zeit mit Werten, die am oberen Ende ihres akzeptierten Bereichs liegen:

SELECT SEC_TO_TIME(3020399);

Ergebnis:

+----------------------+
| SEC_TO_TIME(3020399) |
+----------------------+
| 838:59:59            |
+----------------------+

Und hier ist einer, der außerhalb des Bereichs liegt:

SELECT SEC_TO_TIME(3020400);

Ergebnis:

+----------------------+
| SEC_TO_TIME(3020400) |
+----------------------+
| 838:59:59            |
+----------------------+
1 row in set, 1 warning (0.000 sec)

Hier ist die Warnung:

SHOW WARNINGS;

Ergebnis:

+---------+------+----------------------------------------------+
| Level   | Code | Message                                      |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect seconds value: '3020400' |
+---------+------+----------------------------------------------+

Mikrosekunden

Wir können noch näher an den oberen Bereich herangehen, indem wir Mikrosekunden einbeziehen:

SELECT SEC_TO_TIME(3020399.999999);

Ergebnis:

+-----------------------------+
| SEC_TO_TIME(3020399.999999) |
+-----------------------------+
| 838:59:59.999999            |
+-----------------------------+

Negative Argumente

Die Angabe eines negativen Betrags führt zu einem negativen Zeitwert.

Beispiel:

SELECT SEC_TO_TIME(-3020399);

Ergebnis:

+-----------------------+
| SEC_TO_TIME(-3020399) |
+-----------------------+
| -838:59:59            |
+-----------------------+

Fehlendes Argument

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

SELECT SEC_TO_TIME();

Ergebnis:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'

Und noch ein Beispiel:

SELECT SEC_TO_TIME( 123, 456 );

Ergebnis:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'

Mach dir Zeit

Siehe auch MAKETIME() zum Konstruieren eines Zeitwerts aus seinen Stunden, Minuten und Sekunden.