【发布时间】:2013-01-25 21:02:09
【问题描述】:
我正在关注 sql 并在日期部分不断出错
我得到的错误是:- ORA-01861:文字与格式字符串不匹配
SELECT COUNT(*)
FROM STGDBA.INTERACTIONS
WHERE APP_ID='Home Depot'
AND PEGA_ID ='0'
AND TO_CHAR(to_date(END_TIME))BETWEEN TO_DATE('2012-AUG-01', 'YYYY-MON-DD')AND TO_DATE
('2012-AUG-31', 'YYYY-MON-DD')
这是日期在数据库中的存储方式:- 2011-10-24 08:46:31.621
【问题讨论】:
-
end_time的数据类型是什么?是date吗?还是varchar2?还是别的什么? -
它是 VARCHAR2 (40 BYTE)
-
如果要将
END_TIME与 2 个Date类型进行比较,为什么要将其转换回字符串? -
end_time的格式是什么? 'YYYY-MON-DD' 也是?如果您在 to_date 中指定 end_time 会发生什么?等等,你为什么要把它变成字符?
-
这也给了我同样的错误:- SELECT to_date(END_TIME, 'DD-MON-YYYY')FROM STGDBA.INTERACTIONS