假设要查询2011-05-02到2011-05-30之间的数据,实现方式如下:
to_date方式:
select
*
from
tablename
where
time>=to_date('2011-05-02','yyyy-mm-dd')
and
time
<=
to_date('2011-05-30','yyyy-mm-dd')
运行的结果是:可以显示05-02的数据,但是不能显示05-30的数据。
运行的结果是:可以显示05-02的数据,但是不能显示05-30的数据。
所有可以得出结论:
①如果想显示05-30的数据可以to_date('2011-05-31','yyyy-mm-dd'),这样就能显示30号的了。
②如果想要显示05-30的数据可以to_date('2011-05-30
23:59:59
999','yyyy-mm-dd
hh24:mi:ss')也是可以查出来的。
to_char方式:
同样查询上面两个日期
select
*
from
tablename
where
to_char(time,'yyyy-mm-dd')>=2011-05-02
and
to_char(time,'yyyy-mm-dd')<=2011-05-3
查询结果:可以同时显示05-02和05-30的数据。
另外:可以用between
and
代替
>=符号
你查到的是2022-06-21的数据,那么只需要再加一天2021-06-21不就可以了,在时间的地方加一个or,用扩考括起来就可以了。然后在group by和orderby的时候,加一个出院时间就OK了。不过现在这个时间不能直接用,因为你的出院时间是包括时分秒的,这里你需要截取到日,不然group by和orderby的时候的时候也会按照时分秒去分组排序的。
至于出来以后的显示结果什么样,要看你要的是什么样子,然后再用其他分组调整函数(比如cube等)想办法调整最后的顺序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)