如何比较两个不带日期的时间的早晚

alick723 2018-01-05 10:27:48
现有时间表client_time,有3字段:client_id(varchar2) sbtime(number) cjtime(number) 数据如下:

client_id sbtime(number) cjtime(number)
8705225 85230125 85535265
8705224 103628347 103657256
8705228 103857256 103628347
.... ..... ........

说明: 第一行 sbtime值: 85230125 意思是8点52分30秒 125是秒后的值。

请问如何把sbtime早于cjtime的行查询出来。
...全文
769 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
化工厂很高 2018-01-06
  • 打赏
  • 举报
回复
楼上的几位基本已经解决了,其实一开始你说的数字代表时间,我都蒙了,不过后来你问要先转格式,那就没错了,to_date转换格式(数据库中的number类型的数据其实是毫秒数),然后再比大小就很简单了
花开了叫我 2018-01-05
  • 打赏
  • 举报
回复
to_date(SUBSTR(LPAD(sbtime,9,0),1,6),'hh24miss')
NveANve 2018-01-05
  • 打赏
  • 举报
回复
select * from( select (case when len(to_char(t.sbtime))=8 then '0'||to_char(t.sbtime) else to_char(t.sbtime) end ) as sbtimestr, (case when len(to_char(t.sbtime))=8 then '0'||to_char(t.cjtime) else to_char(t.cjtime) end ) as cjtimestr,t.* from client_time ) where to_date(sbtimestr,'hh24missfff') < to_date(cjtimestr,'hh24missfff') 试试看可以不
alick723 2018-01-05
  • 打赏
  • 举报
回复
1时1分1秒 体现为: 10101(后面是秒后的3位)
alick723 2018-01-05
  • 打赏
  • 举报
回复
不好意思,说少了一句,我是想问如何转换成时间的类型再比较,直接比较大小我知道
alick723 2018-01-05
  • 打赏
  • 举报
回复
都是同一天的时间: 23时59分和59秒 和 0时0分1秒 是 0时0分1秒早于23时59分和59秒; 另秒后是固定的3位
花开了叫我 2018-01-05
  • 打赏
  • 举报
回复
23时59分和59秒 和 0时0分1秒 哪个大?
花开了叫我 2018-01-05
  • 打赏
  • 举报
回复
1时1分1秒 在你的数据怎么体现? 秒后面的值固定三位?
alex259 2018-01-05
  • 打赏
  • 举报
回复
你是 number型 直接比较大小不就行了?
alex259 2018-01-05
  • 打赏
  • 举报
回复
引用 4 楼 alick723 的回复:
不好意思,说少了一句,我是想问如何转换成时间的类型再比较,直接比较大小我知道
那就格式化,to_date

17,140

社区成员

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

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