日期包含年2000
select to_date(add_months(sysdate,-50),'dd/mm/yyyy') from dual --error
ORA-01858: a non-numeric character was found where a numeric was expected
-- 04/08/2000 12:59:15 contains year 2000
select to_date(sysdate,'dd/mm/yyyy') from dual --this work,but diff output
答案 0 :(得分:2)
您应该使用TO_CHAR
代替TO_DATE
。
TO_DATE函数的第一个参数是一个STRING参数,所以这里你的数据被转换为STRING表示,然后转换为日期格式BUT,采用不同的格式:
to_char(add_months(sysdate,-50),'dd/mm/YYYY')
答案 1 :(得分:0)
您的第一个查询select to_date(add_months(sysdate,-50),'dd/mm/yyyy') from dual
可以正常使用
<强>结果:强>
TO_DATE(ADD_MONTHS(SYSDATE,-50),'DD/MM/YYYY')
---------------------------------------------
04-OCT-09