如何将存储为 VARCHAR2 的日期转换为 'MM/DD/YYYY HH24:MI:SS'?
Posted
技术标签:
【中文标题】如何将存储为 VARCHAR2 的日期转换为 \'MM/DD/YYYY HH24:MI:SS\'?【英文标题】:How to convert date stored as VARCHAR2 to 'MM/DD/YYYY HH24:MI:SS'?如何将存储为 VARCHAR2 的日期转换为 'MM/DD/YYYY HH24:MI:SS'? 【发布时间】:2016-05-10 17:53:03 【问题描述】:我希望将日期(存储为 varchar2)例如:4/19/2016 6:42
转换为这种日期格式 MM/DD/YYYY HH24:MI:SS
。
源字段数据类型 - varchar2
目标字段数据类型 - date
源值 - 4/19/2016 6:42
预期值 - 04/19/2016 06:42:00
有人可以为此使用 Oracle (SQL) 命令吗? SQL 代码比 PL/SQL 更受青睐,但任何方法都可以。
【问题讨论】:
如果目标字段是 DATE 列,那么它没有固有格式,因此您只是转换为日期,而不是另一个格式化的字符串。您的字符串格式是否一致? MM/DD 总是这样,你没有月份名称,从来没有 AM/PM 标记,小时部分总是 24 小时格式,等等? OP 表示数据类型(而不是格式)- varchar2 和 date 是数据类型。我将进行编辑以澄清。 【参考方案1】:你应该先转换成日期,然后转换成字符
SELECT TO_CHAR(TO_DATE(your_var_char_date,'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')
FROM your_table;
显然,如果有必要,只应使用转换为日期
SELECT TO_DATE(your_var_char_date,'MM/DD/YYYY HH24:MI:SS')
FROM your_table;
【讨论】:
这将转换回字符串数据类型。 OP想要转换为日期。解决方案在您的答案中,但包含在不需要的 to_char 中。应该只是to_date(... ' ... HH24:MI:SS')
感谢@scaisEdge!这很有帮助。我试图以另一种方式来做 - to_date(to_char(以上是关于如何将存储为 VARCHAR2 的日期转换为 'MM/DD/YYYY HH24:MI:SS'?的主要内容,如果未能解决你的问题,请参考以下文章