如何在 oracle 中转换 varchar 到日期

how cast varchar to date in oracle

我有一个 NVACHAR2() 格式的列,但它保存日期,像这样(列名是 ORGINALDATE):
1/9/2019 3:46:59 PM
我无法更改列的格式,但我需要确定日期。我用过
TO_DATE(ORGINALDATE,'MM/DD/YYYY HH:MI:SS') AS times
在 运行 之后显示此错误:--日期格式图片在转换整个输入字符串之前结束

该错误似乎表明您提供的格式没有提供用于解析整个日期的信息,并且信息遗留在输入字符串中。然后这被视为无效。发生这种情况的原因是原始数据的 AM/PM 未在格式字符串中捕获。查看 https://www.techonthenet.com/oracle/functions/to_date.php,我们看到可以将 AM/PM 添加到格式字符串中。因此将格式字符串更改为

MM/DD/YYYY HH:MI:SS PM

应该修复它。应该注意的是,A.M.、AM、P.M. 或 PM 中的任何一个似乎都是有效的,只需指定时间信息存在即可。