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

Funkcja TO_DATE w ORACLE

Daty nie mają formatu – są reprezentowane przez 7 lub 8 bajtów .

SELECT DUMP( SYSDATE ) FROM DUAL;

Moc wyjściowa:

Typ=13 Len=8: 220,7,11,26,16,41,9,0

Ten format jest bardzo przydatny dla komputerów do porównywania dat, ale nie jest tak przydatny dla ludzi; tak więc, gdy klient SQL (SQL/plus, SQL Developers, TOAD, itp.) wyświetla datę, nie wyświetla bajtów, ale wyświetla ją jako ciąg.

Robi to poprzez niejawne wywołanie TO_CHAR() (lub inną wewnętrzną metodę określania dat) i używa domyślnej maski formatu do wykonania tej konwersji.

SQL/Plus i SQL Developer użyją parametru sesji użytkownika NLS_DATE_FORMAT aby wykonać tę konwersję – zobacz tę odpowiedź w związku z tym.

Więc twoje drugie zapytanie jest niejawnie konwertowane, aby zrobić coś zbliżonego do tego (ale prawie na pewno bardziej efektywnie):

SELECT TO_CHAR(
         TO_DATE('01-01-2015','DD-MM-YYYY'),
         ( SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT' )
       )
FROM   DUAL


  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 wartości oddzielonych przecinkami wewnątrz klauzuli IN dla kolumny NUMBER

  2. Oracle Database 21c dla platform Linux

  3. Problemy na WSO2 z integracją Oracle RDS Amazon

  4. przykłady składni sprzężenia oracle

  5. Wybierz odrębne ... sprzężenie wewnętrzne vs. Wybierz ... gdzie id w (...)