MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona SEC_TO_TIME() in MariaDB

In MariaDB, SEC_TO_TIME() è una funzione di data e ora incorporata che restituisce un valore temporale, basato sul numero di secondi forniti come argomenti.

Sintassi

La sintassi è questa:

SEC_TO_TIME(seconds)

Esempio

Ecco un esempio:

SELECT SEC_TO_TIME(1);

Risultato:

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

Eccone un altro:

SELECT SEC_TO_TIME(18520);

Risultato:

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

Secondi fuori portata

L'intervallo del risultato è vincolato a quello del tipo di dati dell'ora. Viene visualizzato un avviso se l'argomento corrisponde a un valore al di fuori di tale intervallo. L'intervallo per i valori temporali di MariaDB è '-838:59:59.999999''838:59:59.999999' .

Ad ogni modo, ecco un esempio di tempo con valori che si trovano all'estremità superiore dell'intervallo accettato:

SELECT SEC_TO_TIME(3020399);

Risultato:

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

Ed eccone uno che va al di fuori della gamma:

SELECT SEC_TO_TIME(3020400);

Risultato:

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

Ecco l'avviso:

SHOW WARNINGS;

Risultato:

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

Microsecondi

Possiamo avvicinarci ancora di più alla fascia alta includendo i microsecondi:

SELECT SEC_TO_TIME(3020399.999999);

Risultato:

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

Argomenti negativi

Fornire un importo negativo si traduce in un valore temporale negativo.

Esempio:

SELECT SEC_TO_TIME(-3020399);

Risultato:

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

Argomento mancante

Chiamando SEC_TO_TIME() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT SEC_TO_TIME();

Risultato:

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

E un altro esempio:

SELECT SEC_TO_TIME( 123, 456 );

Risultato:

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

Prendi un momento

Vedi anche MAKETIME() per costruire un valore temporale dalle sue ore, minuti e secondi.