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

Jak wyodrębnić numer miesiąca od daty w Oracle

Jeśli wartość jest liczbą lub ciągiem, możesz przekonwertować ją na datę z odpowiednią maską — czego brakuje i co powoduje błąd, który otrzymujesz (ponieważ używa NLS_DATE_FORMAT ustawienie, które najwyraźniej nie pasuje do formatu danych; ale na które i tak nie powinieneś polegać, jak powiedział @MTO w komentarzach):

to_date(ID_BB_SECURITY, 'YYYYMMDD')

a następnie wyodrębnij numer miesiąca z tego:

select extract(month from to_date(ID_BB_SECURITY, 'YYYYMMDD')) from BT_EXPORT

Możesz też po prostu użyć podciągu:

select to_number(substr(ID_BB_SECURITY, 5, 2)) from BT_EXPORT;

Zakładają one stały spójny format, co zawsze jest ryzykowne w przypadku użycia niewłaściwego typu danych. Jeśli jest to liczba, dokonują niejawnej konwersji z liczby na ciąg, którą można przekształcić w jawną konwersję dla większej przejrzystości.

Jeśli jest to już data - tak jak powinna być, oczywiście - nie potrzebujesz konwersji:

select extract(month from ID_BB_SECURITY) from BT_EXPORT


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle.Dataaccess znajduje się w GAC. Czy mogę kontrolować wersję, której używam?

  2. Czy Oracle może uruchamiać funkcje wiersza poleceń systemu Windows?

  3. podając poprawną nazwę użytkownika i hasło, pobierz ORA-01017:nieprawidłowa nazwa użytkownika/hasło; Logowanie odrzucone

  4. Konfigurowanie środowiska programistycznego do nauki języka PL/SQL

  5. XMLTABLE w oracle - Niezgodność typu dynamicznego XQuery:oczekiwana sekwencja singletona - uzyskano sekwencję wieloelementową