我需要在 oracle 中将字符串转换为日期对象。由于所有这些都是通过 sql-loader (sqlldr) 在 shell 脚本中运行的,因此我既不能修改也不能查看代码。我可以设置的唯一参数是转换过程的格式字符串。
输入字符串看起来总是一样的:'Mar 11 2015 7:37:53:060PM'
尝试:我创建了这样的格式:'Mon dd YYYY HH:mi:ss:ff3AM',但我无法运行它,因为我遇到了这个错误消息:“kgepop: no error frame to pop to for error 1821 " (我假设这与 ORA-01821: 日期格式无法识别)我假设这是因为 "ss:ff3AM",因为我发现显然to_date函数无法读取毫秒和 AM/PM 作为一个输入参数(如果我错了,请纠正我,我对此不是 100% 确定)。
尝试:我创建了这样的格式:'Mon dd YYYY HH:mi:ss',我希望他可能只是切断输入字符串的其余部分,但我遇到了ORA-01830 错误(“日期格式图片在转换之前结束整个输入字符串")
因此,我假设脚本执行以下操作:
to_date('MAR 11 2015 7:37:53:060PM','Mon dd YYYY HH:mi:ss');
有没有办法告诉 to_date 方法通过格式字符串切断输入字符串的最后一部分?
每一个帮助将不胜感激!
编辑
不幸的是,我无法使用 to_timestamp 方法,因为我无法修改 shell 脚本功能。所以我必须使用 to_date 方法:(