W MariaDB, SEC_TO_TIME() to wbudowana funkcja daty i czasu, która zwraca wartość czasu na podstawie liczby sekund podanych jako argumenty.
Składnia
Składnia wygląda tak:
SEC_TO_TIME(seconds) Przykład
Oto przykład:
SELECT SEC_TO_TIME(1); Wynik:
+----------------+ | SEC_TO_TIME(1) | +----------------+ | 00:00:01 | +----------------+
Oto kolejny:
SELECT SEC_TO_TIME(18520); Wynik:
+--------------------+ | SEC_TO_TIME(18520) | +--------------------+ | 05:08:40 | +--------------------+
Sekundy poza zakresem
Zakres wyniku jest ograniczony do zakresu danych typu czas. Ostrzeżenie pojawia się, jeśli argument odpowiada wartości spoza tego zakresu. Zakres wartości czasu MariaDB to '-838:59:59.999999' na '838:59:59.999999' .
W każdym razie, oto przykład czasu z wartościami, które znajdują się na górnym końcu ich akceptowanego zakresu:
SELECT SEC_TO_TIME(3020399); Wynik:
+----------------------+ | SEC_TO_TIME(3020399) | +----------------------+ | 838:59:59 | +----------------------+
A oto jeden, który wykracza poza zakres:
SELECT SEC_TO_TIME(3020400); Wynik:
+----------------------+ | SEC_TO_TIME(3020400) | +----------------------+ | 838:59:59 | +----------------------+ 1 row in set, 1 warning (0.000 sec)
Oto ostrzeżenie:
SHOW WARNINGS; Wynik:
+---------+------+----------------------------------------------+ | Level | Code | Message | +---------+------+----------------------------------------------+ | Warning | 1292 | Truncated incorrect seconds value: '3020400' | +---------+------+----------------------------------------------+
Mikrosekundy
Możemy zbliżyć się jeszcze bardziej do górnego zakresu, uwzględniając mikrosekundy:
SELECT SEC_TO_TIME(3020399.999999); Wynik:
+-----------------------------+ | SEC_TO_TIME(3020399.999999) | +-----------------------------+ | 838:59:59.999999 | +-----------------------------+
Argumenty przeczące
Podanie ujemnej kwoty skutkuje ujemną wartością czasu.
Przykład:
SELECT SEC_TO_TIME(-3020399); Wynik:
+-----------------------+ | SEC_TO_TIME(-3020399) | +-----------------------+ | -838:59:59 | +-----------------------+
Brakujący argument
Wywołanie SEC_TO_TIME() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:
SELECT SEC_TO_TIME(); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
I kolejny przykład:
SELECT SEC_TO_TIME( 123, 456 ); Wynik:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SEC_TO_TIME'
Zrób sobie czas
Zobacz także MAKETIME() do konstruowania wartości czasu na podstawie godzin, minut i sekund.