oracle 对字符型日期的查询逻辑是什么

啾一口软糖� 2023-08-31 14:21:35

前提:A表表字段(简称为B)是字符型,原始数据里面存的是yyyymmdd的这种日期,但也有一下数据的这个字段是存的000000。

用别的表关联A表,得到的字段B里面的数据都是yyyymmdd的数字,对这个字段用to_date也能正常转换。这部分数据能确保没问题,用with C()的形式封装一下

但在最外面一层 用这个语句:select * from C where to_char(to_date(B,'yyyy-mm-dd'),'yyyy-mm-dd') <='2023-01-01'  

就是会报ORA-01861: 文字与格式字符串不匹配。明明我子查询C里面得到的数据都是正常的日期格式,为什么一直提示不对,要先对A表的这个字段有000000  的数用case when 转化为一个正确的日期,我上面这句话才执行得出来。

想了解oracle 对这里的处理逻辑是怎么来的?

 

 

...全文
300 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

22,300

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧