I MariaDB, TIME_TO_SEC()
er en indbygget dato- og tidsfunktion, der returnerer sit tidsargument, konverteret til sekunder.
Syntaks
Syntaksen ser sådan ud:
TIME_TO_SEC(time)
Hvor time
er den tidsværdi, der skal konverteres til sekunder.
Eksempel
Her er et eksempel:
SELECT TIME_TO_SEC('00:01:00');
Resultat:
+-------------------------+ | TIME_TO_SEC('00:01:00') | +-------------------------+ | 60 | +-------------------------+
Her er den med et par andre tidsværdier:
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()
understøtter mikrosekunder:
SELECT TIME_TO_SEC('00:01:00.123456');
Resultat:
+--------------------------------+ | TIME_TO_SEC('00:01:00.123456') | +--------------------------------+ | 60.123456 | +--------------------------------+
Større timer
TIME
værdier kan være i området '-838:59:59.999999'
til '838:59:59.999999'
.
Derfor kan timedelen være meget højere end 23
:
SELECT TIME_TO_SEC('838:59:59');
Resultat:
+--------------------------+ | TIME_TO_SEC('838:59:59') | +--------------------------+ | 3020399 | +--------------------------+
Negative tidsværdier
Her er et eksempel med en negativ tidsværdi:
SELECT TIME_TO_SEC('-820:38:15');
Resultat:
+---------------------------+ | TIME_TO_SEC('-820:38:15') | +---------------------------+ | -2954295 | +---------------------------+
Udenfor rækkevidde
Angivelse af en tidsværdi uden for området vil dog returnere sekunderne for den øvre grænse for det pågældende område sammen med en advarsel:
SELECT TIME_TO_SEC('920:38:15');
Resultat:
+--------------------------+ | TIME_TO_SEC('920:38:15') | +--------------------------+ | 3020399 | +--------------------------+ 1 row in set, 1 warning (0.002 sec)
Lad os tjekke advarslen:
SHOW WARNINGS;
Resultat:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '920:38:15' | +---------+------+---------------------------------------------+
Ugyldigt argument
Når ugyldige argumenter sendes, TIME_TO_SEC()
returnerer null
med en advarsel:
SELECT TIME_TO_SEC('Homer');
Resultat:
+----------------------+ | TIME_TO_SEC('Homer') | +----------------------+ | NULL | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Tjek advarslen:
SHOW WARNINGS;
Resultat:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
Manglende argument
Kalder TIME_TO_SEC()
med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT TIME_TO_SEC();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'
Og endnu et eksempel:
SELECT TIME_TO_SEC('10:09:10', 2);
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TIME_TO_SEC'