2013-05-02 4 views
5

Potrzebuję przekonwertować ciąg z varchar na datę w formacie "MM/DD/RRRR". Mój ciąg wejściowy to "4/9/2013", a moje oczekiwane wyniki to "04/09/2013". tj. 2-cyfrowy miesiąc, 2-cyfrowy i 4-cyfrowy rok oddzielony przez "/"Konwersja varchar2 na datę ("MM/DD/YYYY") w języku PL/SQL

Mam poniżej danych: DOJ kolumna varchar2 (10 bajtów) ma wartość "4/9/2013". Używam "wybierz TO_DATA (DOJ," MM/DD/RRRR ") z EmpTable. Ale otrzymuję wynik jako 09-APR-13. Chcę to w formacie 04/09/2013.

Prosimy o radę. Z góry dziękuję.

+0

'dzień spełnienia wymogu nie ma formatu, jeśli po prostu zamienia się w określonym formacie, gdy pytasz bazy danych lub aplikacji, aby go wyświetlić. Jeśli potrzebujesz określonej sformatowanej daty, musisz przekonwertować z 'varchar' na' varchar' zamiast tego. –

+0

Potrzebuję danych wyjściowych tylko w varchar lub dowolnego typu danych .. po prostu powinno być jak "04/09/2013" w Wybierz zapytanie. –

+0

Wypróbuj 'TO_DATE (SUBSTR (DOJ, 1, 11), 'dd/mm/rrrr')' z Oracle sql 11g – KingRider

Odpowiedz

7

Najprostszym sposobem jest najprawdopodobniej konwersja z VARCHAR na DATE; następnie ponownie sformatuj go w VARCHAR w wybranym formacie;

An SQLfiddle to test with.

+0

Dzięki. To zadziałało dla mnie. –

2

Najpierw konwertujesz VARCHAR na DATE, a następnie z powrotem na CHAR. Robię to prawie codziennie i nigdy nie znalazłem lepszego sposobu.

select TO_CHAR(TO_DATE(DOJ,'MM/DD/YYYY'), 'MM/DD/YYYY') from EmpTable 
+0

Dzięki. To zadziałało dla mnie. –

0

Przykład zapytania: SELECT TO_CHAR(TO_DATE('2017-08-23','YYYY-MM-DD'), 'MM/DD/YYYY') FROM dual;

+0

To potrzebne formatowanie kodu i objaśnienie, aby było poprawną odpowiedzią. Sugeruję, abyś wziął udział w [wycieczce] przeczytaj [odpowiedź], a następnie [edytuj] swój post, aby był dobrej jakości –

Powiązane problemy