Quando usi MySQL, puoi usare SEC_TO_TIME()
funzione per costruire un tempo valore basato su un determinato numero di secondi. Fondamentalmente, fornisci il numero di secondi come argomento e lo convertirà in un tempo valore.
Ecco come funziona.
Sintassi
La sintassi è questa:
SEC_TO_TIME(seconds)
Dove seconds
è il numero di secondi che vuoi convertire in un tempo valore.
Esempio 1 – Utilizzo di base
Ecco un esempio da dimostrare.
SELECT SEC_TO_TIME(65);
Risultato:
+-----------------+ | SEC_TO_TIME(65) | +-----------------+ | 00:01:05 | +-----------------+
Esempio 2:un valore maggiore
Ecco un esempio con un valore leggermente maggiore.
SELECT SEC_TO_TIME(6555);
Risultato:
+-------------------+ | SEC_TO_TIME(6555) | +-------------------+ | 01:49:15 | +-------------------+
Eccone uno con un valore ancora più grande.
SELECT SEC_TO_TIME(655555);
Risultato:
+---------------------+ | SEC_TO_TIME(655555) | +---------------------+ | 182:05:55 | +---------------------+
Quindi il valore del tempo non è limitato a 24 ore. Questo perché non si limita a rappresentare solo l'ora del giorno. Potrebbe anche rappresentare il tempo trascorso o un intervallo di tempo tra due eventi.
Esempio 3 – Limitazioni sul tipo di dati temporali
Il time
il tipo di dati è limitato a un intervallo compreso tra -838:59:59 a 838:59:59 . Se il risultato non rientra in tale intervallo, riceverai un avviso.
SELECT SEC_TO_TIME(6555555);
Risultato:
+----------------------+ | SEC_TO_TIME(6555555) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.00 sec)
Stai attento però. Il valore del tempo mostrato potrebbe essere fuorviante, poiché si fermerà a 838:59:59 anche se il risultato sarebbe stato maggiore di quello.
Ecco un altro esempio che utilizza ancora un valore maggiore.
SELECT SEC_TO_TIME(65555550000);
Risultato:
+--------------------------+ | SEC_TO_TIME(65555550000) | +--------------------------+ | 838:59:59 | +--------------------------+ 1 row in set, 1 warning (0.00 sec)
Si noti che otteniamo lo stesso risultato dell'esempio precedente, anche se in questo l'argomento dei secondi è molto più grande.
Esempio 4 – Contesto numerico
Ecco un esempio di utilizzo di SEC_TO_TIME()
in un contesto numerico. Lo facciamo aggiungendo un valore (in questo caso 0
) alla dichiarazione.
SELECT SEC_TO_TIME(6555), SEC_TO_TIME(6555) + 0;
Risultato:
+-------------------+-----------------------+ | SEC_TO_TIME(6555) | SEC_TO_TIME(6555) + 0 | +-------------------+-----------------------+ | 01:49:15 | 14915 | +-------------------+-----------------------+