Poniżej znajdują się 4 funkcje, które umożliwiają zwrócenie części sekundowej z wartości czasu w MariaDB.
SECOND()
Funkcja
SECOND()
funkcja zwraca część sekundową podanego TIME
lub DATETIME
wyrażenie. Przyjmuje jeden argument, czyli czas, z którego chcesz wydobyć sekundy.
Przykład:
SELECT SECOND('03:45:30');
Wynik:
+--------------------+ | SECOND('03:45:30') | +--------------------+ | 30 | +--------------------+
TIME
wartości mogą należeć do zakresu '-838:59:59.999999'
do '838:59:59.999999'
. Obejmuje to mikrosekundy, ale SECOND()
zwraca tylko drugą część (jest MICROSECOND()
funkcja zwracania mikrosekund).
TIME
wartości mogą być również ujemne. W takich przypadkach SECOND()
zwraca wartość dodatnią.
Oto ujemna wartość czasu z częścią w mikrosekundach:
SELECT SECOND('-838:59:59.999999');
Wynik:
+-----------------------------+ | SECOND('-838:59:59.999999') | +-----------------------------+ | 59 | +-----------------------------+
Druga część jest wyodrębniana zgodnie z oczekiwaniami.
EXTRACT()
Funkcja
EXTRACT()
funkcja pozwala na wyodrębnienie określonej jednostki z wartości daty/czasu. Dlatego możesz go użyć do wyodrębnienia sekund (jak również innych jednostek) z wartości czasu.
Przykład:
SELECT EXTRACT(SECOND FROM '10:47:01');
Wynik:
+---------------------------------+ | EXTRACT(SECOND FROM '10:47:01') | +---------------------------------+ | 1 | +---------------------------------+
TIME_FORMAT()
Funkcja
TIME_FORMAT()
funkcja pozwala sformatować wartość czasu na podstawie ciągu formatującego. Ciąg formatu określa sposób formatowania czasu.
Możesz zatem użyć tej funkcji do zwrócenia sekund (a także minut i godzin) z czasu.
%s
i %S
specyfikatory formatu zwracają sekundy z dwiema cyframi:
SELECT
TIME_FORMAT('10:07:30', '%s'),
TIME_FORMAT('10:07:30', '%S');
Wynik:
+-------------------------------+-------------------------------+ | TIME_FORMAT('10:07:30', '%s') | TIME_FORMAT('10:07:30', '%S') | +-------------------------------+-------------------------------+ | 30 | 30 | +-------------------------------+-------------------------------+
Możesz także użyć $f
specyfikator formatu do zwrócenia sześciu cyfr subsekund:
SELECT
TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds",
TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";
Wynik:
+--------------+-----------+ | Microseconds | Both | +--------------+-----------+ | 123456 | 30.123456 | +--------------+-----------+
TIME_FORMAT()
funkcja akceptuje podzbiór ciągów formatujących, które mogą być używane z DATE_FORMAT()
funkcjonować. Zobacz ciągi formatujące MariaDB, aby uzyskać pełną listę ciągów formatujących/specyfikatorów, których można używać z DATE_FORMAT()
. TIME_FORMAT()
funkcja akceptuje tylko specyfikatory formatu dla godzin, minut i sekund/subsekund. Każdy inny specyfikator formatu daje wynik null
lub 0
zostanie zwrócony.
DATE_FORMAT()
Funkcja
DATE_FORMAT()
Funkcja umożliwia sformatowanie wartości daty lub daty i godziny na podstawie ciągu formatującego. Ciąg formatu określa sposób formatowania daty/godziny.
Dlatego możemy użyć tych samych specyfikatorów formatu, których użyliśmy w funkcji TIME_FORMAT()
funkcji w poprzednim przykładzie. Jednak DATE_FORMAT()
nie akceptuje TIME
wartość, więc będziemy musieli przekazać DATETIME
wartość.
SELECT DATE_FORMAT('2023-01-01 10:07:30', '%s');
Wynik:
+------------------------------------------+ | DATE_FORMAT('2023-01-01 10:07:30', '%s') | +------------------------------------------+ | 30 | +------------------------------------------+
Mija tylko TIME
wartość nie działa z tą funkcją:
SELECT DATE_FORMAT('10:07:30', '%s') AS '%s';
Wynik:
+------+ | %s | +------+ | 00 | +------+