Oracle如何比较两个日期是否相等?一个时间为varchar类型,另一个为date类型

fKlose 2016-10-14 10:12:21
where 1=1
and a.CREATED_TIME > = to_date(#{CREATED_TIME},'yyyy-mm-dd')
...全文
4281 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
fKlose 2016-10-14
  • 打赏
  • 举报
回复
另外,怎么给层主分啊,我没弄过。。
fKlose 2016-10-14
  • 打赏
  • 举报
回复
谢谢各位大神的指点,我把数据表中的日期字段转成了date类型然后与后面的比较就可以了。 <!-- 时间检索 --> <if test="CREATED_TIME != null and CREATED_TIME != ''"> and to_date(a.CREATED_TIME,'yyyy-mm-dd') = to_date(#{CREATED_TIME},'yyyy-mm-dd') </if> 而且我试了一下to_char()方法出现无效数字异常。
sych888 2016-10-14
  • 打赏
  • 举报
回复
转换的统一类型进行比较
zbdzjx 2016-10-14
  • 打赏
  • 举报
回复
或者把date类型to_char,再比较。 例如:to_char(sysdate, 'yyyy-mm-dd')='2016-10-14'
js14982 2016-10-14
  • 打赏
  • 举报
回复
oracle中的date类型进度为 年月日 时分秒,你的char类型是你自己定义的,一般都没有时分秒精度的。所以你要比较的话要考虑时分秒的问题 比如date 2016-10-14 10:32:01 ,char 2016-10-14
卖水果的net 2016-10-14
  • 打赏
  • 举报
回复
a.CREATED_TIME 如果有 时分秒的话,你要trunc(a.CREATED_TIME ) 一下;
卖水果的net 2016-10-14
  • 打赏
  • 举报
回复
引用 5 楼 fKlose 的回复:
谢谢各位大神的指点,我把数据表中的日期字段转成了date类型然后与后面的比较就可以了。 <!-- 时间检索 --> <if test="CREATED_TIME != null and CREATED_TIME != ''"> and to_date(a.CREATED_TIME,'yyyy-mm-dd') = to_date(#{CREATED_TIME},'yyyy-mm-dd') </if> 而且我试了一下to_char()方法出现无效数字异常。
-- trunc 就可以了,不用 to_date and trunc(a.CREATED_TIME) = to_date(#{CREATED_TIME},'yyyy-mm-dd')

17,086

社区成员

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

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