Używając MySQL, możesz użyć SEC_TO_TIME()
funkcja budowania czasu wartość na podstawie podanej liczby sekund. Zasadniczo podajesz liczbę sekund jako argument, a przekonwertuje to na czas wartość.
Oto jak to działa.
Składnia
Składnia wygląda tak:
SEC_TO_TIME(seconds)
Gdzie seconds
to liczba sekund, które chcesz przekonwertować na czas wartość.
Przykład 1 – Podstawowe użycie
Oto przykład do zademonstrowania.
SELECT SEC_TO_TIME(65);
Wynik:
+-----------------+ | SEC_TO_TIME(65) | +-----------------+ | 00:01:05 | +-----------------+
Przykład 2 – Większa wartość
Oto przykład z nieco większą wartością.
SELECT SEC_TO_TIME(6555);
Wynik:
+-------------------+ | SEC_TO_TIME(6555) | +-------------------+ | 01:49:15 | +-------------------+
Oto kolejny z jeszcze większą wartością.
SELECT SEC_TO_TIME(655555);
Wynik:
+---------------------+ | SEC_TO_TIME(655555) | +---------------------+ | 182:05:55 | +---------------------+
Tak więc wartość czasu nie jest ograniczona do 24 godzin. Dzieje się tak, ponieważ nie ogranicza się to tylko do przedstawiania pory dnia. Może również reprezentować upływ czasu lub odstęp czasu między dwoma zdarzeniami.
Przykład 3 – Ograniczenia czasu Typ danych
time
typ danych jest ograniczony do zakresu od -838:59:59 do 838:59:59 . Jeśli wynik wypadnie poza ten zakres, otrzymasz ostrzeżenie.
SELECT SEC_TO_TIME(6555555);
Wynik:
+----------------------+ | SEC_TO_TIME(6555555) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.00 sec)
Bądź jednak ostrożny. Wyświetlona wartość czasu może wprowadzać w błąd, ponieważ zatrzyma się o 838:59:59 nawet jeśli wynik byłby większy.
Oto kolejny przykład z użyciem jeszcze większej wartości.
SELECT SEC_TO_TIME(65555550000);
Wynik:
+--------------------------+ | SEC_TO_TIME(65555550000) | +--------------------------+ | 838:59:59 | +--------------------------+ 1 row in set, 1 warning (0.00 sec)
Zauważ, że otrzymujemy ten sam wynik, co w poprzednim przykładzie, mimo że argument sekund jest w tym przypadku znacznie większy.
Przykład 4 – Kontekst numeryczny
Oto przykład użycia SEC_TO_TIME()
w kontekście liczbowym. Robimy to, dodając wartość (w tym przypadku 0
) do oświadczenia.
SELECT SEC_TO_TIME(6555), SEC_TO_TIME(6555) + 0;
Wynik:
+-------------------+-----------------------+ | SEC_TO_TIME(6555) | SEC_TO_TIME(6555) + 0 | +-------------------+-----------------------+ | 01:49:15 | 14915 | +-------------------+-----------------------+