Oracle中SQL常见报错整理
错误1:too many precision specifiers:精度说明符过多
这种常见的是TRUNC(SYSDATE,‘yyyy-mm-dd’),然后报这个错误
原因分析:
这种是因为TRUNC(SYSDATE)即可默认当前日期(年月日)
解决方案:
改为:
TRUNC(SYSDATE)
错误2:(full) year must be between -4713 and +9999, and not be 0
这种一般都是你查询条件中的日期匹配不上
原因分析:
可能你数据库中的日期是date类型的,但是你输入的是字符串类型的,这时候就需要转换下
解决方案:
就像这样;
SELECT substr( fd.TIMETB, 0, 10 ) TIMETB, SUM(fd.ORDER_NUM) 单量
FROM test1 fd left join test2 fs ON
fd.TOP_BRAND_NAME=fs.TOP_BRAND_NAME WHERE 1=1 AND
substr( fd.TIMETB,0, 10 ) BETWEEN
TO_CHAR(trunc(to_date(’ d a t e ′ , ′ y y y y − m m − d d ′ ) , ′ i w ′ ) , ′ y y y y − m m − d d