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

Data Oracle na konwersję ciągu

Dane w COL1 są w formacie dd-mon-yy

Nie, nie jest. DATE kolumna nie mieć dowolny format. Jest on konwertowany (niejawnie) na tę reprezentację tylko przez klienta SQL podczas jego wyświetlania.

Jeśli COL1 to naprawdę DATE kolumna za pomocą to_date() na nim jest bezużyteczne, ponieważ to_date() konwertuje ciąg na DATE.

Potrzebujesz tylko to_char(), nic więcej:

SELECT TO_CHAR(col1, 'mm/dd/yyyy') 
FROM TABLE1

To, co dzieje się w twoim przypadku, to wywołanie to_date() konwertuje DATE na wartość znakową (stosując domyślny format NLS), a następnie konwertując ją z powrotem na DATĘ. Z powodu tej podwójnej niejawnej konwersji niektóre informacje są tracone po drodze.

Edytuj

Więc popełniłeś wielki błąd, przechowując DATE w kolumnie znaków. I dlatego teraz masz problemy.

Najlepszym (i szczerze mówiąc:jedynym sensownym) rozwiązaniem jest przekonwertowanie tej kolumny na DATE . Następnie możesz przekonwertować wartości na dowolną reprezentację, którą chcesz, nie martwiąc się o niejawną konwersję typu danych.

Ale najprawdopodobniej odpowiedź brzmi:„Odziedziczyłem ten model, muszę sobie z tym poradzić " (zawsze tak jest, najwyraźniej nikt nigdy nie jest odpowiedzialny za wybór złego typu danych), musisz użyć RR zamiast YY :

SELECT TO_CHAR(TO_DATE(COL1,'dd-mm-rr'), 'mm/dd/yyyy')
FROM TABLE1

powinien załatwić sprawę. Zauważ, że zmieniłem również mon do mm Twoim przykładem jest 27-11-89 który ma numer miesiąca, a nie „słowo” (np. NOV )

Więcej informacji znajdziesz w instrukcji:http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#SQLRF00215



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sprawdzanie informacji o sieci Oracle RAC i adresach IP

  2. Strona główna Oracle tylko do odczytu

  3. Przeanalizuj json przez json_table w Oracle 18

  4. Jaki jest limit rozmiaru argumentu podprogramu varchar2 PL/SQL w Oracle?

  5. Pamięć podręczna wyników