2013-05-02 83 views
5

我需要以'MM/DD/YYYY'格式將字符串從varchar轉換爲日期。我的輸入字符串是'4/9/2013',我的預期輸出是'04/09/2013'。即2位數月份,2位數字和4位數字年份由'/'分隔將varchar2轉換爲PL/SQL中的日期('MM/DD/YYYY')

我有以下數據: DOJ varchar2(10字節)列有'4/9/2013'的值。 我正在使用EmpTable中的'select TO_DATE(DOJ,'MM/DD/YYYY')。但是我的結果是09年4月9日。我想要在04/09/2013格式。

請指教。提前致謝。

+0

一個'DATE'沒有格式,如果當你問的數據庫或應用程序,以顯示它只是轉換爲特定的格式。如果您需要特定的格式化日期,則需要將'varchar'轉換爲'varchar'。 – 2013-05-02 19:35:08

+0

我需要輸出只是在varchar或任何數據類型..只是它應該像'04/09/2013'在選擇查詢。 – 2013-05-02 19:37:07

+0

用oracle sql 11g試試'TO_DATE(SUBSTR(DOJ,1,11),'dd/mm/rrrr')' – KingRider 2017-02-01 12:13:53

回答

7

最簡單的方法可能是從VARCHAR轉換爲DATE;然後再以所需的格式將其重新格式化爲VARCHAR;

SELECT TO_CHAR(TO_DATE(DOJ,'MM/DD/YYYY'), 'MM/DD/YYYY') FROM EmpTable; 

An SQLfiddle to test with

+0

謝謝。它爲我工作。 – 2013-05-02 19:49:50

2

首先將VARCHAR轉換爲DATE,然後再轉換爲CHAR。我幾乎每天都這樣做,從來沒有找到更好的方法。

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

謝謝。它爲我工作。 – 2013-05-02 19:50:24

0

例子查詢: SELECT TO_CHAR(TO_DATE('2017-08-23','YYYY-MM-DD'), 'MM/DD/YYYY') FROM dual;

+0

這需要代碼格式和解釋才能成爲有效的答案。我建議你參加[旅遊]閱讀[答案],然後[編輯]你的文章,使其成爲一個很好的質量 – 2017-08-23 21:45:40