关于Oracle 时间排序的问题,大神进!!

Timor_D 2018-11-30 04:31:38
现在又张表 t 某字段time (Date),现在要根据time离当前时间最近的进行排序,这个sql语句怎么写!!
...全文
956 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Timor_D 2018-12-13
  • 打赏
  • 举报
回复
引用 8 楼 nayi_224 的回复:
[quote=引用 4 楼 Timor_D 的回复:]
SELECT * FROM t
ORDER BY abs(TIME-sysdate)
这个语句我不知道为什么一直报错
> ORA-00932: inconsistent datatypes: expected NUMBER got INTERVAL DAY TO SECOND
转换了也没解决


with tab1 as (
select sysdate - 0.4 dt from dual union all
select sysdate + 0.1 from dual
)
select*from tab1
order by abs(dt - sysdate)
;

语句没问题,数据类型搞错了吧。[/quote] 数据与问题。。。
进击丶Saber 2018-12-13
  • 打赏
  • 举报
回复
我没笑
RUA好多鱼~ 2018-12-05
  • 打赏
  • 举报
回复
引用 6 楼 别闹腰不好 的回复:
数据库中时间最大的,离当前时间最近,没毛病吧
对啊,我也觉得是这样没错啊,哪不对了
nayi_224 2018-12-04
  • 打赏
  • 举报
回复
引用 4 楼 Timor_D 的回复:
SELECT * FROM t ORDER BY abs(TIME-sysdate) 这个语句我不知道为什么一直报错 > ORA-00932: inconsistent datatypes: expected NUMBER got INTERVAL DAY TO SECOND 转换了也没解决
with tab1 as (
select sysdate - 0.4 dt from dual union all
select sysdate + 0.1 from dual
)
select*from tab1
 order by abs(dt - sysdate)
;
语句没问题,数据类型搞错了吧。
liu724551711 2018-12-04
  • 打赏
  • 举报
回复
select * from ( select time-sysdate newDate from t where time >= sysdate union select sysdate-time newDate from t where time < sysdate ) a order by newDate; 绝对值只对Number类型管用,用这种方式相当于变相的求绝对值,然后进行排序
别闹腰不好 2018-11-30
  • 打赏
  • 举报
回复
数据库中时间最大的,离当前时间最近,没毛病吧
summer917_ 2018-11-30
  • 打赏
  • 举报
回复
mysql中好像可以这样排序. SELECT c.*, ( CASE WHEN c.create_date > NOW( ) THEN c.create_date - NOW( ) WHEN c.create_date < NOW( ) THEN NOW( ) - create_date END ) sort, ( CASE WHEN c.create_date > NOW( ) THEN 0 WHEN create_date < NOW( ) THEN 1 END ) sort1 FROM goods_coupou c ORDER BY sort1, sort; oracle中可以用sysdate进行比较吧.
Timor_D 2018-11-30
  • 打赏
  • 举报
回复
SELECT * FROM t
ORDER BY abs(TIME-sysdate)
这个语句我不知道为什么一直报错
> ORA-00932: inconsistent datatypes: expected NUMBER got INTERVAL DAY TO SECOND
转换了也没解决
Timor_D 2018-11-30
  • 打赏
  • 举报
回复
引用 2 楼 别闹腰不好 的回复:
select * from t order by time DESC
要求看清楚 大哥
别闹腰不好 2018-11-30
  • 打赏
  • 举报
回复
select * from t order by time DESC
Timor_D 2018-11-30
  • 打赏
  • 举报
回复
怎么没人啊 在线等!

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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