regex - 如何从带有周围字符的 oracle varchar 获取日期时间
问题描述
我有一个 varchar2 'Printed 4/21/2014 3:00:00 AM' 并且只想获得 '4/21/2014 3:00:00 AM' 作为日期。我的想法是使用类似的东西:
我有: REGEXP_SUBSTR('Printed 4/21/2014 3:00:00 AM', '[0-9/ :APM]*$') 结果:4/21/2014 3:00:00 AM
然而,
SELECT to_date(REGEXP_SUBSTR('Printed 4/21/2014 3:00:00 AM', '[0-9/ :APM]*$'), 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;
导致“无效月份”错误。
建议?
解决方案
问题:由 mathguy 正确识别 - 日期格式
我决定我真的不需要时间戳,因此:
SELECT to_date(REGEXP_SUBSTR('Printed 4/21/2014', '[0-9/]*$'), 'MM/DD/YYYY') FROM DUAL;
工作正常。