Při používání MySQL můžete použít SEC_TO_TIME()
funkce k vytvoření času hodnota založená na daném počtu sekund. V zásadě uvedete počet sekund jako argument a ten se převede na čas hodnotu.
Zde je návod, jak to funguje.
Syntaxe
Syntaxe vypadá takto:
SEC_TO_TIME(seconds)
Kde seconds
je počet sekund, které chcete převést na čas hodnotu.
Příklad 1 – Základní použití
Zde je příklad k demonstraci.
SELECT SEC_TO_TIME(65);
Výsledek:
+-----------------+ | SEC_TO_TIME(65) | +-----------------+ | 00:01:05 | +-----------------+
Příklad 2 – Větší hodnota
Zde je příklad s mírně vyšší hodnotou.
SELECT SEC_TO_TIME(6555);
Výsledek:
+-------------------+ | SEC_TO_TIME(6555) | +-------------------+ | 01:49:15 | +-------------------+
Zde je opět jeden s ještě větší hodnotou.
SELECT SEC_TO_TIME(655555);
Výsledek:
+---------------------+ | SEC_TO_TIME(655555) | +---------------------+ | 182:05:55 | +---------------------+
Časová hodnota tedy není omezena na 24 hodin. Je to proto, že se neomezuje pouze na zobrazení denní doby. Může také představovat uplynulý čas nebo časový interval mezi dvěma událostmi.
Příklad 3 – Omezení typu časových dat
time
datový typ je omezen na rozsah od -838:59:59 na 838:59:59 . Pokud je výsledek mimo tento rozsah, dostanete varování.
SELECT SEC_TO_TIME(6555555);
Výsledek:
+----------------------+ | SEC_TO_TIME(6555555) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.00 sec)
Buďte však opatrní. Zobrazená hodnota času může být zavádějící, protože se zastaví na 838:59:59 i když by výsledek byl větší.
Zde je další příklad s použitím ještě větší hodnoty.
SELECT SEC_TO_TIME(65555550000);
Výsledek:
+--------------------------+ | SEC_TO_TIME(65555550000) | +--------------------------+ | 838:59:59 | +--------------------------+ 1 row in set, 1 warning (0.00 sec)
Všimněte si, že dostaneme stejný výsledek jako v předchozím příkladu, i když argument sekund je v tomto mnohem větší.
Příklad 4 – Číselný kontext
Zde je příklad použití SEC_TO_TIME()
v číselném kontextu. To provedeme přidáním hodnoty (v tomto případě 0
) k výpisu.
SELECT SEC_TO_TIME(6555), SEC_TO_TIME(6555) + 0;
Výsledek:
+-------------------+-----------------------+ | SEC_TO_TIME(6555) | SEC_TO_TIME(6555) + 0 | +-------------------+-----------------------+ | 01:49:15 | 14915 | +-------------------+-----------------------+