sql >> Database >  >> RDS >> MariaDB

Hoe SEC_TO_TIME() werkt in MariaDB

In MariaDB, SEC_TO_TIME() is een ingebouwde datum- en tijdfunctie die een tijdwaarde retourneert, gebaseerd op het aantal seconden dat als argument wordt opgegeven.

Syntaxis

De syntaxis gaat als volgt:

SEC_TO_TIME(seconds)

Voorbeeld

Hier is een voorbeeld:

SELECT SEC_TO_TIME(1);

Resultaat:

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

Hier is er nog een:

SELECT SEC_TO_TIME(18520);

Resultaat:

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

Buiten bereik seconden

Het bereik van het resultaat is beperkt tot dat van het gegevenstype tijd. Er wordt een waarschuwing weergegeven als het argument overeenkomt met een waarde buiten dat bereik. Het bereik voor MariaDB-tijdwaarden is '-838:59:59.999999' naar '838:59:59.999999' .

Hoe dan ook, hier is een voorbeeld van een tijd met waarden die zich aan de bovenkant van hun geaccepteerde bereik bevinden:

SELECT SEC_TO_TIME(3020399);

Resultaat:

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

En hier is er een die buiten het bereik valt:

SELECT SEC_TO_TIME(3020400);

Resultaat:

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

Hier is de waarschuwing:

SHOW WARNINGS;

Resultaat:

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

Microseconden

We kunnen nog dichter bij het bovenste bereik komen door microseconden op te nemen:

SELECT SEC_TO_TIME(3020399.999999);

Resultaat:

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

Negatieve argumenten

Het verstrekken van een negatief bedrag resulteert in een negatieve tijdswaarde.

Voorbeeld:

SELECT SEC_TO_TIME(-3020399);

Resultaat:

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

Ontbrekend argument

Bellen SEC_TO_TIME() met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT SEC_TO_TIME();

Resultaat:

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

En nog een voorbeeld:

SELECT SEC_TO_TIME( 123, 456 );

Resultaat:

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

Maak een tijd

Zie ook MAKETIME() voor het construeren van een tijdwaarde uit de uren, minuten en seconden.


  1. SQL Server:UPDATE een tabel met ORDER BY

  2. Gegevens importeren in een MySQL-database

  3. MySQL Great Circle Distance (Haversine-formule)

  4. Oracle JDeveloper 12c gebruiken met Oracle Database, deel 2