求SQL语句,条件离某个时间最近的数据。

qingYun1029 2012-07-05 10:59:28
表数据如下:
CAR_ID CAR_MODEL_ID CAN_USE CAR_DATE CAR_BELONG_CITY_ID CAR_BELONG_STORE_ID CAR_AT_CITY_ID CAR_AT_STORE_ID
54 107 1 2012-8-13 22:10:00 26 7
54 107 1 2012-8-13 22:20:00 26 7
54 107 1 2012-8-13 22:30:00 26 7
54 107 1 2012-8-13 22:40:00 26 7
54 107 1 2012-8-13 22:50:00 26 7
54 107 1 2012-8-13 23:00:00 26 7
54 107 1 2012-8-13 23:10:00 26 7
54 107 1 2012-8-13 23:20:00 26 7
54 107 1 2012-8-13 23:30:00 26 7
54 107 1 2012-8-13 23:40:00 26 7


表中的时间时固定格式的,每十分钟一条,查询条件也是时间点,动态获取,格式不固定的,需要查询的结果是离提供时间点最经的时间对应的数据。。。

例如:提供的时间时2012-8-13 23:30:01,那么查询出来的数据有两条,分别为时间2012-8-13 23:30:00、2012-8-13 23:40:00对应的数据,也就是时间的前一条和后一条数据,如正好相等,值获取一条数据。。。

...全文
892 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lithor 2012-07-11
  • 打赏
  • 举报
回复
如果car_use只有0和1两个值则可以按照car_use列升序排序,然后取第一行即可。
qingYun1029 2012-07-05
  • 打赏
  • 举报
回复
结果为:

CAR_ID CAR_MODEL_ID CAN_USE CAR_DATE CAR_BELONG_CITY_ID CAR_BELONG_STORE_ID CAR_AT_CITY_ID CAR_AT_STORE_ID CAR_USE_MODE USE_NO UPD_USER_ID UPD_DATE
54 107 1 2012-8-13 20:50:00 26 7 2012-5-13 0:00:17
54 107 1 2012-8-13 20:40:00 26 7 2012-5-13 0:00:17


开始如何在sql语句里面用条件判断呢?

要求:如果car_use相同,那么随便取一条数据就可以,否则取car_use=0的那条数据。。。
qingYun1029 2012-07-05
  • 打赏
  • 举报
回复
第一步实现了,取出两条数据。


with
s1 as (select * from CAR_STATE_107 where car_id=54 and rownum=1 and car_date>=to_date('2012-8-13 20:40:04','yyyy-MM-dd hh24:mi:ss') order by car_date),
s2 as (select * from CAR_STATE_107 where car_id=54 and rownum=1 and car_date<=to_date('2012-8-13 20:40:04','yyyy-MM-dd hh24:mi:ss') order by car_date desc)
select * from s1 union all select * from s2
wqkjj 2012-07-05
  • 打赏
  • 举报
回复
(1) 取最小时间差
select min(abs(date1-date2))
from ....
(2) 计算正负时间差的后的时间,然后判断该时间是否存在
小德 2012-07-05
  • 打赏
  • 举报
回复
可以将表拆分两部分
1.拆分为<=条件时间和>=条件时间的两种资料。
2.分别抓1中最大和最小时间的资料。
3.求2中的并集。
mg_chen 2012-07-05
  • 打赏
  • 举报
回复
select acctime from (select acctime,row_number() over(order by acctime desc) idx from ac_placestockbook where acctime<sysdate ) where idx=1
wlnet 2012-07-05
  • 打赏
  • 举报
回复
CAR_DATE - :日期
绝对值排序

17,141

社区成员

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

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