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'
a '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.