to_date() pobiera parametr ciągu, dopasowuje go do formatu podanego w drugim parametrze i tworzy z niego pole daty. Pole daty nie używa formatu podanego w drugim parametrze - w rzeczywistości będzie ono przechowywane przy użyciu wewnętrznej reprezentacji danych, która w ogóle nie ma formatu (liczba, najprawdopodobniej).
Aby ponownie przedstawić format w wynikach z pola daty, możesz:
- Poproś klienta wykonującego zapytanie o ustawienie parametrów NLS (na poziomie sesji), aby zapewnić zlokalizowany format, z
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
oświadczenie) lub - Użyj
to_char(..., 'YYYY-MM-DD')
wokół istniejącego pola, aby zamienić datę z powrotem w ciąg sformatowany tak, jak chcesz. Gdzie zastępujesz...
z aktualną definicją kolumny w zaznaczeniu.
Podejście nr 1 już się dzieje, ponieważ będzie już zestaw NLS_DATE_FORMAT, który produkuje bieżący format, ale jest to format, którego nie chcesz, więc jeśli możesz go kontrolować i tam go zmienić, możesz to zrobić droga. Jeśli nie możesz i musisz mieć format w jeden spójny inny sposób, to #2 może być drogą do zrobienia.