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

zamiana rrrr-mm-dd na mm/dd/rrrr

Daty nie mają formatu – są reprezentowane wewnętrznie przez 7 lub 8 bajtów . Tylko wtedy, gdy program klienta mija datę, ten program klienta (potencjalnie) nadaje mu format.

Domyślny format ciągu dla dat w SQL/Plus lub SQL Developer jest ustawiany przez NLS_DATE_FORMAT parametr sesji. Inni klienci zazwyczaj mają parametry, które można ustawić dla domyślnego formatu daty (jeśli nie używają również NLS ustawienia). Pamiętaj jednak, że NLS_DATE_FORMAT jest parametrem sesji, więc należy do sesji użytkownika, a wielu użytkowników może mieć inną wartość parametru odpowiadającą temu, jak go ustawili.

Jeśli chcesz nadać dacie określony format, musisz przekonwertować ją na ciąg:

SELECT TO_CHAR( DATE '2016-05-01', 'MM/DD/YYYY HH24:MI:SS' )
FROM   DUAL;

Dlaczego Twoje zapytanie nie działa :

TO_DATE( value, frmt ) oczekuje wartości ciągu i maski formatu. Wewnętrzny TO_DATE('2016-05-01 00:00:00','YYYY-MM-DD HH24:MI:SS') jest całkowicie poprawny i zwróci DATE '2016-05-01' .

Jednak zewnętrzna TO_DATE() jest wtedy przekazywana DATE typ, który właśnie wygenerowałeś i format ciągu (zamiast dwóch ciągów, których oczekuje). Oracle niejawnie wywoła TO_CHAR() w dniu i użyj NLS_DATE_FORMAT parametr sesji jako maska ​​formatu. To generuje ciąg znaków od daty i, biorąc pod uwagę błąd, wartość NLS_DATE_FORMAT nie jest MM/DD/YYYY HH24:MI:SS więc gdy zewnętrzna TO_DATE() próbuje przeanalizować niejawnie utworzony ciąg, który nie powiedzie się, ponieważ pierwsza odczytana liczba jest nieważna przez miesiąc.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak odczytać wszystkie pliki z Oracle Directory za pomocą PL/SQL i zaktualizować kolumnę BLOB?

  2. Napraw ORA-02273:do tego unikalnego/podstawowego klucza odwołują się niektóre klucze obce

  3. Poprawne użycie COALESCE w klauzuli WHERE

  4. Problem:uzyskiwanie różnych wyników z zapytań SUM

  5. Zautomatyzuj większość zapytań aktualizacyjnych w pl\sql