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.