Oracle
 sql >> Baza danych >  >> RDS >> Oracle

2 funkcje, które zwracają sekundy z wartości daty i godziny w Oracle

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01034:ORACLE niedostępne ORA-27101:obszar pamięci współdzielonej nie istnieje

  2. Dokumentacja MAA dla Oracle Cloud

  3. Czy kolejność tabel, do których odwołuje się klauzula ON w JOIN, ma znaczenie?

  4. Jak konwertować wiersze na kolumny w tabeli Oracle

  5. sprawdź poprawną datę, która jest zadeklarowana w varchar2