查询语句这样写是错误的:
select *
from student
where birthdate >= '2000-10-5'
其中,birthdate在数据库中是date类型
错误原因:在oracle数据库管理系统中,birthdate是date数据类型,'2000-10-5'是字符串类型,两者进行比较操作时,DBMS内部可能没有针对这种情况的隐式类型转换,即>=操作符对应的操作函数族中,没有针对这种情况的特例,所以就会报错
更改:
1.都变为字符串比较 where to_char(birthdate,'yyyy-mm-dd') >= '2000-10-5'
2.都变为日期格式比较 where birthdate >= to_date('2000-10-5','yyyy-mm-dd')
本文介绍了一种在Oracle数据库中由于日期类型不匹配导致的查询错误,并提供了两种解决方案:一是将日期转换为字符串进行比较;二是将字符串转换为日期进行比较。

537

被折叠的 条评论
为什么被折叠?



