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'