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

NEW_TIME() Funkcja w Oracle

W bazie danych Oracle NEW_TIME() funkcja konwertuje datę z określonej strefy czasowej na inną określoną strefę czasową i zwraca wynik.

Składnia

Składnia wygląda tak:

NEW_TIME(date, timezone1, timezone2)

Funkcja zwraca więc datę i godzinę w strefie czasowej timezone2 kiedy data i godzina w strefie czasowej timezone1 date .

Pamiętaj, że przed użyciem tej funkcji musisz ustawić NLS_DATE_FORMAT parametr do wyświetlania czasu 24-godzinnego.

Argumenty timezone1 i timezone2 może być dowolnym z tych ciągów tekstowych:

AST lub ADT Atlantyk standardowy lub czas letni
BST lub BDT Bering standardowy lub czas letni
CST lub CDT Centralny czas standardowy lub letni
EST lub EDT Czas wschodni standardowy lub letni
GMT Średni czas Greenwich
HST lub HDT Czas standardowy Alaska-Hawaje lub czas letni
MST lub MDT Czas górski standardowy lub letni
NST Czas standardowy Nowej Fundlandii
PST lub PDT Czas pacyficzny standardowy lub letni
YST lub YDT Jukon czas standardowy lub letni

Przykład

Oto przykład:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

SELECT
    NEW_TIME(
        TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 
        'AST', 
        'PST'
        )
FROM DUAL;

Wynik:

2030-03-01 08:30:45

Jak wspomniano, podczas korzystania z tej funkcji NLS_DATE_FORMAT parametr musi być ustawiony na wyświetlanie czasu 24-godzinnego, więc to właśnie robi pierwsza linia w powyższym przykładzie. Możesz pominąć ten wiersz, jeśli NLS_DATE_FORMAT Twojej sesji parametr już używa czasu 24-godzinnego. Zobacz Jak ustawić format daty sesji, aby uzyskać więcej przykładów ustawiania formatu daty dla bieżącej sesji.

Argumenty zerowe

Jeśli jakikolwiek argument ma wartość null , wynik to null :

SET NULL 'null';

SELECT
    NEW_TIME(null, 'AST', 'ADT') AS "1",
    NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), null, 'ADT') AS "2",
    NEW_TIME(TO_DATE('2030-03-01 12:30:45', 'YYYY-MM-DD HH24:MI:SS'), 'AST', null) AS "3"
FROM DUAL;

Wynik:

      1       2       3 
_______ _______ _______ 
null    null    null   

Domyślnie SQLcl i SQL*Plus zwracają spację, gdy null występuje w wyniku polecenia SQL SELECT oświadczenie.

Możesz jednak użyć SET NULL aby określić inny ciąg do zwrócenia. Tutaj określiłem, że ciąg null należy zwrócić.

Brakujący argument

Wywoływanie NEW_TIME() z niewłaściwą liczbą argumentów lub bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT NEW_TIME()
FROM DUAL;

Wynik:

Error starting at line : 1 in command -
SELECT NEW_TIME()
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 -  "invalid number of arguments"
*Cause:    
*Action:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie zmiennych bind z dynamiczną klauzulą ​​SELECT INTO w PL/SQL

  2. Jak wstawić plik do bazy danych Oracle?

  3. Włączanie wirtualizacji w systemie BIOS w laptopie lub komputerze stacjonarnym dla maszyny wirtualnej Virtualbox

  4. Siatki bezpieczeństwa

  5. Jak ustawić niestandardowy format daty i godziny w Oracle SQL Developer?