In MariaDB, TIME_TO_SEC() è una funzione di data e ora incorporata che restituisce l'argomento relativo all'ora, convertito in secondi.
Sintassi
La sintassi è questa:
TIME_TO_SEC(time)
Dove time è il valore del tempo da convertire in secondi.
Esempio
Ecco un esempio:
SELECT TIME_TO_SEC('00:01:00'); Risultato:
+-------------------------+
| TIME_TO_SEC('00:01:00') |
+-------------------------+
| 60 |
+-------------------------+ Eccolo con un paio di altri valori temporali:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46'); Risultato:
+-------------------------+-------------------------+
| TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') |
+-------------------------+-------------------------+
| 3600 | 56266 |
+-------------------------+-------------------------+ Microsecondi
TIME_TO_SEC() supporta microsecondi:
SELECT TIME_TO_SEC('00:01:00.123456'); Risultato:
+--------------------------------+
| TIME_TO_SEC('00:01:00.123456') |
+--------------------------------+
| 60.123456 |
+--------------------------------+ Orari più grandi
TIME i valori possono essere compresi nell'intervallo '-838:59:59.999999' a '838:59:59.999999' .
Pertanto, la parte dell'ora può essere molto più alta di 23 :
SELECT TIME_TO_SEC('838:59:59'); Risultato:
+--------------------------+
| TIME_TO_SEC('838:59:59') |
+--------------------------+
| 3020399 |
+--------------------------+ Valori temporali negativi
Ecco un esempio con un valore temporale negativo:
SELECT TIME_TO_SEC('-820:38:15'); Risultato:
+---------------------------+
| TIME_TO_SEC('-820:38:15') |
+---------------------------+
| -2954295 |
+---------------------------+ Tempi fuori portata
Tuttavia, fornendo un valore di tempo al di fuori dell'intervallo restituirà i secondi per il limite superiore di tale intervallo, insieme a un avviso:
SELECT TIME_TO_SEC('920:38:15'); Risultato:
+--------------------------+
| TIME_TO_SEC('920:38:15') |
+--------------------------+
| 3020399 |
+--------------------------+
1 row in set, 1 warning (0.002 sec) Controlliamo l'avviso:
SHOW WARNINGS; Risultato:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Argomento non valido
Quando vengono passati argomenti non validi, TIME_TO_SEC() restituisce null con un avviso:
SELECT TIME_TO_SEC('Homer'); Risultato:
+----------------------+
| TIME_TO_SEC('Homer') |
+----------------------+
| NULL |
+----------------------+
1 row in set, 1 warning (0.000 sec) Controlla l'avviso:
SHOW WARNINGS; Risultato:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Argomento mancante
Chiamando TIME_TO_SEC() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:
SELECT TIME_TO_SEC(); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
E un altro esempio:
SELECT TIME_TO_SEC('10:09:10', 2); Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'