Når du bruger MySQL, kan du bruge SEC_TO_TIME()
funktion til at bygge en tid værdi baseret på et givet antal sekunder. Grundlæggende angiver du antallet af sekunder som et argument, og det vil konvertere det til en tid værdi.
Sådan fungerer det.
Syntaks
Syntaksen ser sådan ud:
SEC_TO_TIME(seconds)
Hvor seconds
er det antal sekunder, du ønsker konverteret til en tid værdi.
Eksempel 1 – Grundlæggende brug
Her er et eksempel til at demonstrere.
SELECT SEC_TO_TIME(65);
Resultat:
+-----------------+ | SEC_TO_TIME(65) | +-----------------+ | 00:01:05 | +-----------------+
Eksempel 2 – En større værdi
Her er et eksempel med en lidt større værdi.
SELECT SEC_TO_TIME(6555);
Resultat:
+-------------------+ | SEC_TO_TIME(6555) | +-------------------+ | 01:49:15 | +-------------------+
Her er en med en endnu større værdi igen.
SELECT SEC_TO_TIME(655555);
Resultat:
+---------------------+ | SEC_TO_TIME(655555) | +---------------------+ | 182:05:55 | +---------------------+
Så tidsværdien er ikke begrænset til 24 timer. Dette skyldes, at det ikke er begrænset til kun at repræsentere tidspunktet på dagen. Det kan også repræsentere forløbet tid eller et tidsinterval mellem to begivenheder.
Eksempel 3 – Begrænsninger på tidsdatatypen
time
datatypen er begrænset til et område fra -838:59:59 til 838:59:59 . Hvis resultatet falder uden for dette område, får du en advarsel.
SELECT SEC_TO_TIME(6555555);
Resultat:
+----------------------+ | SEC_TO_TIME(6555555) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.00 sec)
Vær dog forsigtig. Den viste tidsværdi kan være vildledende, da den stopper ved 838:59:59 selvom resultatet ville have været større end det.
Her er endnu et eksempel med endnu en større værdi.
SELECT SEC_TO_TIME(65555550000);
Resultat:
+--------------------------+ | SEC_TO_TIME(65555550000) | +--------------------------+ | 838:59:59 | +--------------------------+ 1 row in set, 1 warning (0.00 sec)
Bemærk, at vi får det samme resultat som i det foregående eksempel, selvom argumentet sekunder er meget større i dette.
Eksempel 4 – Numerisk kontekst
Her er et eksempel på brug af SEC_TO_TIME()
i en numerisk sammenhæng. Det gør vi ved at tilføje en værdi (i dette tilfælde 0
) til erklæringen.
SELECT SEC_TO_TIME(6555), SEC_TO_TIME(6555) + 0;
Resultat:
+-------------------+-----------------------+ | SEC_TO_TIME(6555) | SEC_TO_TIME(6555) + 0 | +-------------------+-----------------------+ | 01:49:15 | 14915 | +-------------------+-----------------------+