Dzień dobry,
tworzę widok na podstawie tabeli i problem wygląda tak: mam w tabeli datę w formacie rr/mm/dd jako varchar2 a zależy mi żeby było to w formacie RRRR-MM-DD. Ktoś wie może w jaki sposób to zrobić? Mega prośba o pomoc :)!
Jaka baza?
@UglyMan: Oracle, v.11
SELECT TO_CHAR(TO_DATE(<twoja data>,'YY/MM/DD'), 'YYYY-MM-DD') FROM EmpTable;
@UglyMan: Działa mistrzu, dzięki wielkie za pomoc :)
Jeszcze jedno pytanie w tym wątku: korzystając z tego polecenia @UglyMan zrobiłem, ale jeśli potem chciałbym przeprowadzić operację na tym jak na dacie to nie da rady, bo to funkcja tekstowa. Da się w Oracle z tego zrobić format daty w postaci 'RRRR-MM-DD', tak żeby potem wyodrębnić z tego np. rok, kwartał itp? Dzięki wielkie wszystkim z góry
Chyba mylisz wartość z formatem zapisu. Format to tylko sposób zapisu. Jak chcesz z daty wyodrębniać rok miesiąc itp to przekształć na typ data (TO_DATE) i poszukaj funkcji w dokumentacji do tego.
@UglyMan: No właśnie już tak próbowałem, tylko jak przekształcam funkcją 'TO_DATE' to zawsze jest w postaci YYYY/MM/DD a tego chcę uniknąć
Mylisz daną od jej reprezentacji. Data samą w sobie jest daną (rok, miesiąc i dzień) i to jak zostanie wyświetlona pewnie zależy od tego, jak jest ustawiony system albo system operacyjny. String 'YYYY-MM-DD' jest już reprezentacją tej danej
EXTRACT(month FROM order_date) "Month",
SELECT TO_CHAR(TO_DATE(<twoja data>,'YY/MM/DD'), 'YYYY-MM-DD'), EXTRACT(month FROM TO_DATE(<twoja data>,'YY/MM/DD')) "Month",
FROM EmpTable