sql – Oracle TO_DATE不会抛出错误
当使用
format_mask参数时,我刚刚发现oracle
TO_DATE功能的好奇行为.
基本上,我看到的是,在一种情况下,它会忽略给定的格式掩码,并使用自己的掩码来解析输入,在其他情况下会抛出异常. 示例我预期的行为 – 抛出的错误: SELECT TO_DATE('18-02-2016','DD/MON/YYYY') FROM dual
示例II意外行为 – 解析日期: SELECT TO_DATE('18-feb-2016','DD/MM/YYYY') FROM dual
我在文档中看不到任何这样的说法,所以我想知道这个incostincency是否是设计的,还是错误的,或者我不明白什么是正确的? 编辑: 格式如何解释(oracle猜测)不正确?有没有关于这里正在发生的事情的文件,所以我可以确定它是安全的? 我的问题是 – 我可以把它关掉吗?我唯一的选择是否自行验证格式? 解决方法见表: https://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm#g195479它是日期时间格式模型的字符串日期转换规则部分的一部分.在MM的情况下,如果没有匹配,则尝试MON和MONTH.类似地,如果您指定MON并且没有找到,则尝试MONTH.如果你指定MONTH并且找不到它,它会尝试MON,但是除了MM之外,它不会尝试MM. 回答这个问题:我可以把它关掉吗?答案是,是的. 您可以通过将FX指定为格式化的一部分来实现. SELECT TO_DATE('18/february/2016','FXDD/MM/YYYY') FROM dual; 现在返回:
而以下内容: SELECT TO_DATE('18/02/2016','FXDD/MM/YYYY') FROM dual; 返回预期:
请注意,当指定FX时,您必须使用适当的分隔符,否则将会出错. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |