Poniżej znajdują się dwie funkcje, których można użyć do zwrócenia części sekund z wartości daty i godziny w bazie danych Oracle.
EXTRACT() Funkcja
EXTRACT(datetime) Funkcja służy do wyodrębniania różnych części daty i godziny z wartości daty i godziny. Obejmuje to część sekund.
Oto przykład:
SELECT
EXTRACT(SECOND FROM TIMESTAMP '2035-01-01 10:15:37')
FROM DUAL; Wynik:
37
To SECOND słowo kluczowe, które wyodrębnia część sekund z wartości daty i godziny. Obejmuje to ułamki sekund:
SELECT
EXTRACT(
SECOND FROM TIMESTAMP '2035-01-01 10:15:37.123456789'
)
FROM DUAL; Wynik:
37.123456789
Możemy uzyskać inne części daty, zmieniając je na odpowiednie słowo kluczowe. Na przykład YEAR , MONTH , HOUR , MINUTE itp.
Możemy również użyć funkcji z innymi wartościami datetime, takimi jak DATE .
TO_CHAR(datetime) Funkcja
Możemy również użyć TO_CHAR(datetime) funkcja jako alternatywna metoda pobierania składnika sekund z wartości daty i godziny.
Ta funkcja akceptuje wartość daty i godziny lub przedziału jako swój pierwszy argument, a model formatu jako drugi argument. Funkcja następnie konwertuje wartość na typ danych VARCHAR2 w określonym formacie.
Model formatu określa format, dla którego ma zostać zwrócona wartość daty/godziny/interwału. Model formatu składa się z co najmniej jednego elementu formatu. Dzięki temu możemy starannie opracować wyniki, aby odzwierciedlić nasz pożądany format.
Jeśli chcemy zwrócić tylko sekundy, możemy użyć jednego z elementów formatu, które zwracają ten składnik.
Istnieje kilka różnych elementów formatu, których możemy użyć podczas zwracania składnika sekund z wartości daty i godziny.
Najbardziej oczywistym jest SS element formatu:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SS')
FROM DUAL; Wynik:
37
Jak widać, SS element format zwraca tylko część sekund, ale nie ułamki sekund.
Ułamki sekund
Jeśli chcemy uwzględnić ułamki sekund, możemy użyć FF element formatu. Możemy również użyć X aby określić znak podstawy (symbol używany do oddzielenia części całkowitej od części ułamkowej):
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL; Wynik:
37.123456789
Możliwe jest również ograniczenie precyzji poprzez dodanie liczby do FF część:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF5')
FROM DUAL; Wynik:
37.12345
Numer może być 1 do 9 .
Chociaż możesz wyraźnie podać swój własny znak podstawy – na przykład kropkę (. ), X element formatu może być przydatny do przenoszenia na różne języki/terytoria.
Kiedy uruchomiłem powyższe przykłady, mój NLS_TERRITORY parametr został ustawiony na AUSTRALIA , co spowodowało, że podstawa była kropką.
Oto, co się stanie, gdy zmienię moje NLS_TERRITORY parametr do GERMANY :
ALTER SESSION SET NLS_TERRITORY = 'GERMANY';
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 10:15:37.123456789', 'SSXFF')
FROM DUAL; Wynik:
37,123456789
Teraz podstawa to przecinek.
Sekundy po północy
Możemy użyć SSSSS aby zwrócić sekundy po północy:
SELECT
TO_CHAR(TIMESTAMP '2035-01-01 00:01:05', 'SSSSS')
FROM DUAL; Wynik:
00065