I MariaDB, TIME_TO_SEC() är en inbyggd datum- och tidsfunktion som returnerar dess tidsargument, omvandlat till sekunder.
Syntax
Syntaxen ser ut så här:
TIME_TO_SEC(time)
Där time är det tidsvärde som ska konverteras till sekunder.
Exempel
Här är ett exempel:
SELECT TIME_TO_SEC('00:01:00'); Resultat:
+-------------------------+
| TIME_TO_SEC('00:01:00') |
+-------------------------+
| 60 |
+-------------------------+ Här är den med ett par andra tidsvärden:
SELECT
TIME_TO_SEC('01:00:00'),
TIME_TO_SEC('15:37:46'); Resultat:
+-------------------------+-------------------------+
| TIME_TO_SEC('01:00:00') | TIME_TO_SEC('15:37:46') |
+-------------------------+-------------------------+
| 3600 | 56266 |
+-------------------------+-------------------------+ Mikrosekunder
TIME_TO_SEC() stöder mikrosekunder:
SELECT TIME_TO_SEC('00:01:00.123456'); Resultat:
+--------------------------------+
| TIME_TO_SEC('00:01:00.123456') |
+--------------------------------+
| 60.123456 |
+--------------------------------+ Större timmar
TIME värden kan ligga inom intervallet '-838:59:59.999999' till '838:59:59.999999' .
Därför kan timdelen vara mycket högre än 23 :
SELECT TIME_TO_SEC('838:59:59'); Resultat:
+--------------------------+
| TIME_TO_SEC('838:59:59') |
+--------------------------+
| 3020399 |
+--------------------------+ Negativa tidsvärden
Här är ett exempel med ett negativt tidsvärde:
SELECT TIME_TO_SEC('-820:38:15'); Resultat:
+---------------------------+
| TIME_TO_SEC('-820:38:15') |
+---------------------------+
| -2954295 |
+---------------------------+ Utanom räckviddstider
Om du tillhandahåller ett tidsvärde utanför intervallet returneras dock sekunderna för den övre gränsen för det intervallet, tillsammans med en varning:
SELECT TIME_TO_SEC('920:38:15'); Resultat:
+--------------------------+
| TIME_TO_SEC('920:38:15') |
+--------------------------+
| 3020399 |
+--------------------------+
1 row in set, 1 warning (0.002 sec) Låt oss kolla varningen:
SHOW WARNINGS; Resultat:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Ogiltigt argument
När några ogiltiga argument har skickats, TIME_TO_SEC() returnerar null med en varning:
SELECT TIME_TO_SEC('Homer'); Resultat:
+----------------------+
| TIME_TO_SEC('Homer') |
+----------------------+
| NULL |
+----------------------+
1 row in set, 1 warning (0.000 sec) Kontrollera varningen:
SHOW WARNINGS; Resultat:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Argument saknas
Anropar TIME_TO_SEC() med fel antal argument, eller utan att skicka några argument, resulterar i ett fel:
SELECT TIME_TO_SEC(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
Och ett annat exempel:
SELECT TIME_TO_SEC('10:09:10', 2); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'