to_date() взема вашия низов параметър, съпоставя го с формата, който предоставяте във втория параметър, и конструира поле за дата от него. Полето за дата не използва формата, който предоставихте във втория параметър - всъщност то ще се съхранява с помощта на някакво вътрешно представяне на данни, което изобщо няма формат (по всяка вероятност число).
За да представите формат обратно в резултатите от поле за дата, можете:
- Нека клиентът, изпълняващ заявката, зададе NLS параметрите (на ниво сесия), за да предостави локализиран формат, с
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
изявление), или - Използвайте
to_char(..., 'YYYY-MM-DD')
около вашето съществуващо поле, за да превърнете датата обратно в низ, форматиран по начина, по който искате да бъде. Където замествате...
с текущата ви дефиниция на колона в избраното.
Подход №1 вече се случва, тъй като вече ще има набор NLS_DATE_FORMAT, който създава текущия формат, но е с формат, който не желаете, така че ако можете да го контролирате и промените там, можете да го направите това начин. Ако не можете и трябва да имате формата по един-единствен последователен друг начин, тогава #2 може да е правилният начин.