Podczas pracy z MySQL możesz użyć funkcji TIME()
funkcja do wyodrębnienia części czasu z wartości czasu lub daty i czasu.
Działa to tak, że przekazujesz wyrażenie czas/data/godzinę jako argument, a TIME()
zwróci część czasu.
Składnia
Składnia wygląda tak:
TIME(expr)
Gdzie expr
jest wyrażeniem czasu/daty-godzina, z którego chcesz wyodrębnić część czasu.
Przykład podstawowy
Oto przykład z użyciem wartości daty i godziny.
SELECT TIME('2021-01-03 11:15:45');
Wynik:
+-----------------------------+ | TIME('2021-01-03 11:15:45') | +-----------------------------+ | 11:15:45 | +-----------------------------+
Sekundy ułamkowe
Oto przykład, w którym wartość datetime zawiera również część ułamkową sekund.
SELECT TIME('2021-01-03 11:15:45.123456');
Wynik:
+------------------------------------+ | TIME('2021-01-03 11:15:45.123456') | +------------------------------------+ | 11:15:45.123456 | +------------------------------------+
Pomijanie części sekund
Oto przykład, w którym druga część została pominięta w początkowej wartości.
SELECT TIME('2021-01-03 11:15');
Wynik:
+--------------------------+ | TIME('2021-01-03 11:15') | +--------------------------+ | 11:15:00 | +--------------------------+
W takim przypadku część sekundowa jest nadal zwracana, nawet jeśli została pominięta w wartości początkowej.
Wyodrębnianie czasu z wartości „czasu”
Jak wspomniano, pierwszy argument może być samą wartością czasu (tj. nie musi to być wartość daty i czasu).
SELECT TIME('11:15');
Wynik:
+---------------+ | TIME('11:15') | +---------------+ | 11:15:00 | +---------------+
Replikacja oparta na oświadczeniach — ostrzeżenie
Dokumentacja MySQL zawiera następujące informacje o TIME()
funkcja:
Ta funkcja jest niebezpieczna w przypadku replikacji opartej na instrukcjach. Ostrzeżenie jest rejestrowane, jeśli użyjesz tej funkcji, gdy binlog_format
jest ustawiona na STATEMENT
.