oracle中两个varchar2类型的时间怎么进行比较

我表里面有两个时间in_date和out_date两个字段的类型都是varchar2的表名car_goods_info时间类型为年-月-日 时:分:秒。null表示今天我要获取到7点到8点,8点到9点之间的数据,请问能办到么?不管是in_date还是out_date都可以同列字段之间的时间。

需要转换成date格式进行比较,或者直接比较也可以。

比如时间格式是2104-01-01 00:00:00。

语法:

select sign(to_date('2015-01-01 00:00:00', 'yyyy-mm-dd hh24:mi:ss') -
            to_date('2015-01-02 00:00:00', 'yyyy-mm-dd hh24:mi:ss'))
  from dual

如果返回值为-1,则前边的日期较小;返回值为0,则两个值一样大;返回值为1,则后边的日期较小。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-29
可以将转换为日期类型(TO_DATE方法)进行比较。
sql: SELECT TO_DATE('2006-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS')-TO_DATE('20015-05-01 19:25:34', 'YYYY-MM-DD HH24:MI:SS') FROM DUAL;

备注:时间做差的话,越是靠近当前时间的日期越大,所以大于0就是前面的时间大,否则就是后面的时间大。
第2个回答  2014-10-23
可以办到的.有两个函数你会用的到to_char,to_date()追问

能给我写个伪SQL语句么?我之前在网上看了一下

第3个回答  推荐于2017-09-12
oracle里不是有date类型嘛,我不明白为什么你的两个日期是varchar2型的。

select * from car_goods_info
where to_date(in_date,'yyyy-MM-dd hh24-mm-ss') between to_date('2014-10-23 07:00:00','yyyy-MM-dd hh24-mm-ss') and to_date('2014-10-23 08:00:00','yyyy-MM-dd hh24-mm-ss')
and to_date(out_date,'yyyy-MM-dd hh24-mm-ss') between to_date('2014-10-23 08:00:00','yyyy-MM-dd hh24-mm-ss') and to_date('2014-10-23 09:00:00','yyyy-MM-dd hh24-mm-ss');
oracle 里 DATE型是可以比较的 所以我都给你转成了DATE型 看着舒坦多了。追问

如果我要把一天24小时的记录全部按一个小时一个小时来展示比如7到8点8到9点是不是要将这种查询语句写成select (上述sql语句区间改为7-8)
) as 7到8(sql区间改为8-9) as 8到9,.... from car_goods_info这样么?有简便的方法没

追答

1-2 2-3 3-4 4-5。。。。。。

v1 v2 v3 v4 。。。。。。
你要这样的显示结果是吗?如果你的car_goods_info只有一列是可以的,但是多余一列是不行的。
比如in_date和out _date不能as成一个7-8。
如果你真的只有一列,非要这样显示的话,要显示几个区间,就要在SELECT后面接几个字段。

本回答被提问者采纳
第4个回答  2014-10-23
to_date: select to_date('2014-10-23 12:30:59','yyyy-MM-dd hh24:mi:ss') d1 from dual;

类似下面的:
select * from car_goods_info where to_date(in_date ,'yyyy-MM-dd hh24:mi:ss') between to_date('2014-10-23 08:00:00','yyyy-MM-dd hh24:mi:ss') and ('2014-10-23 09:00:00','yyyy-MM-dd hh24:mi:ss')追问

  如果我要把一天24小时的记录全部按一个小时一个小时来展示比如7到8点8到9点是不是要将这种查询语句写成select (上述sql语句区间改为7-8)
) as 7到8(sql区间改为8-9) as 8到9,.... from car_goods_info这样么?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网