Oracle中根据时间范围查询数据

Oracle中根据时间范围查询数据,第1张

1、当时间条件字段为字符串类型的时候,通过以下方法查询数据

1.1、SELECT * FROM 表名 t WHERE 1=1 AND to_date(t.tkdat,'yyyy/MM/dd')

between to_date('2017/8/1','yyyy/MM/dd') and to_date('2017/11/1','yyyy/MM/dd')

1.2、SELECT * FROM zsd018a t WHERE 1=1 AND to_date(t.tkdat,'yyyy/MM/dd hh24:mi:ss')

between to_date('2017/8/1','yyyy/MM/dd hh24:mi:ss') and to_date('2017/11/1','yyyy/MM/dd hh24:mi:ss')

2、当时间条件为date类型的时候,通过以下方法查询数据:

select * from zmm028 where to_char(tkdat,'YYYY-MM-DD')>='2017-10-01'

and to_char(tkdat,'YYYY-MM-DD')<='2017-11-02'

你查到的是2022-06-21的数据,那么只需要再加一天2021-06-21不就可以了,在时间的地方加一个or,用扩考括起来就可以了。然后在group by和orderby的时候,加一个出院时间就OK了。

不过现在这个时间不能直接用,因为你的出院时间是包括时分秒的,这里你需要截取到日,不然group by和orderby的时候的时候也会按照时分秒去分组排序的。

至于出来以后的显示结果什么样,要看你要的是什么样子,然后再用其他分组调整函数(比如cube等)想办法调整最后的顺序。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10064435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存