select语句中where判断条件中varchar2和to_char()的比较

东海小龙 2014-04-14 11:48:07


其中oper_date的数据类型为 varchar2
...全文
486 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
garfieldzf 2014-04-14
  • 打赏
  • 举报
回复


select * from Table1 t where t.oper_date<=to_char(to_date('20120712','yyyyMMdd'),'yyyymmdd')
garfieldzf 2014-04-14
  • 打赏
  • 举报
回复
先查看转化的日期格式
gleiyu 2014-04-14
  • 打赏
  • 举报
回复
你这个因为to_date()后又用了to_char()进行了隐式转换格式不对出现的错误。

SELECT to_char(to_date('20120712','yyyyMMdd')-10) FROM dual;
结果为:

02-7月 -12

SELECT least('20120712','02-7月 -12') FROM dual;
在to_char的时候显式转换下

to_char(to_date('20120712','yyyyMMdd')-10,'yyyymmdd')
流浪川 2014-04-14
  • 打赏
  • 举报
回复
引用 楼主 a524036174 的回复:
其中oper_date的数据类型为 varchar2
把to_char也格式化一下,系统默认的日期格式与你数据库中存的不同。使用下面的方法: to_char(to_date('20120712','yyyymmdd')-10,'yyyymmdd')

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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