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.