I MariaDB, SEC_TO_TIME() er en indbygget dato- og tidsfunktion, der returnerer en tidsværdi baseret på antallet af sekunder, der er angivet som argumenter.
Syntaks
Syntaksen ser sådan ud:
SEC_TO_TIME(seconds) Eksempel
Her er et eksempel:
SELECT SEC_TO_TIME(1); Resultat:
+----------------+ | SEC_TO_TIME(1) | +----------------+ | 00:00:01 | +----------------+
Her er endnu en:
SELECT SEC_TO_TIME(18520); Resultat:
+--------------------+ | SEC_TO_TIME(18520) | +--------------------+ | 05:08:40 | +--------------------+
Udenfor rækkevidde sekunder
Området for resultatet er begrænset til tidsdatatypen. En advarsel opstår, hvis argumentet svarer til en værdi uden for dette område. Intervallet for MariaDB-tidsværdier er '-838:59:59.999999' til '838:59:59.999999' .
Uanset hvad, her er et eksempel på et tidspunkt med værdier, der er i den øvre ende af deres accepterede interval:
SELECT SEC_TO_TIME(3020399); Resultat:
+----------------------+ | SEC_TO_TIME(3020399) | +----------------------+ | 838:59:59 | +----------------------+
Og her er en, der går uden for rækkevidden:
SELECT SEC_TO_TIME(3020400); Resultat:
+----------------------+ | SEC_TO_TIME(3020400) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Her er advarslen:
SHOW WARNINGS; Resultat:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect seconds value: '3020400' | +---------+------+----------------------------------------------+
Mikrosekunder
Vi kan gå endnu tættere på det øvre område ved at inkludere mikrosekunder:
SELECT SEC_TO_TIME(3020399.999999); Resultat:
+-----------------------------+ | SEC_TO_TIME(3020399.999999) | +-----------------------------+ | 838:59:59.999999 | +-----------------------------+
Negative argumenter
Angivelse af et negativt beløb resulterer i en negativ tidsværdi.
Eksempel:
SELECT SEC_TO_TIME(-3020399); Resultat:
+-----------------------+ | SEC_TO_TIME(-3020399) | +-----------------------+ | -838:59:59 | +-----------------------+
Manglende argument
Kalder SEC_TO_TIME() med det forkerte antal argumenter, eller uden at sende nogen argumenter, resulterer det i en fejl:
SELECT SEC_TO_TIME(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Og endnu et eksempel:
SELECT SEC_TO_TIME( 123, 456 ); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Lav en tid
Se også MAKETIME() til at konstruere en tidsværdi ud fra dens timer, minutter og sekunder.