oracle 执行时出现日期格式错误

ergxz8rk  于 2023-01-25  发布在  Oracle
关注(0)|答案(1)|浏览(692)

ORA-01840:输入值对于日期格式01840来说不够长。00000 -“输入值对于日期格式来说不够长”* 原因:

  • 行动:
SELECT TO_DATE (
          TO_CHAR (TO_DATE (attribute39, 'MM/DD/YYYY'), 'DD/MM/YYYY'),
          'DD/MM/YYYY') AS "PO Valid To Date"
  FROM table;

要想执行查询而不出错,attribute 39是以mm/dd/yyyy和varchar格式表示的日期(250)

chy5wohz

chy5wohz1#

TO_DATE支持'DEFAULT return_value ON CONVERSION ERROR',如果您在日期格式前面加上'FX',您将能够检测到attribute 39不完全符合您预期的行:

TO_DATE (attribute39, DEFAULT to_date('01/01/0001','dd/mm/yyyy') ON CONVERSION ERROR, 'FXMM/DD/YYYY')

如果您没有NULL作为attribute 39的可能值,则可以将其作为DEFAULT,如果不选择您确信不在数据中的值,则可以更容易地检测到具有无效attribute 39的行。
如果字符串中的年份只有两位数(表示从1950年到2049年),则可能会得到ORA-01840。
您还可以使用正则表达式运行查询来检测attribute 39中的意外值。

相关问题