将varchar2转换为PL/SQL中的日期('MM/DD/YYYY')

问题描述:

我需要以'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

最简单的方法可能是从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

首先将VARCHAR转换为DATE,然后再转换为CHAR。我几乎每天都这样做,从来没有找到更好的方法。

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

谢谢。它为我工作。 – 2013-05-02 19:50:24

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

+0

这需要代码格式和解释才能成为有效的答案。我建议你参加[旅游]阅读[答案],然后[编辑]你的文章,使其成为一个很好的质量 – 2017-08-23 21:45:40