字符串比较....
表A中有两个字段time1,time2 ,都是字符形数据
time1 time2
2006-12-04 10:18:09 2006-12-07
2006-12-08 11:45:04 2006-12-09
2006-12-10 23:18:01 2006-12-11
time1取到日为止即:2006-12-04、2006-12-08、2006-12-10
选出time2比time1大24小时的数据
结果为
time1 time2
2006-12-08 11:45:04 2006-12-09
2006-12-10 23:18:01 2006-12-11
------解决方案--------------------select
*
from table
where to_date(time2, 'yyyy-mm-dd hh24:mi:ss ') -
to_date(to_char(time1, 'yyyy-mm-dd '), 'yyyy-mm-dd hh24:mi:ss ')> =1
------解决方案--------------------基本思路:将TIME2和time1都转换为日期格式直接相减的结果*24 > 24的就是了
(to_date(time2,..)-to_date(time1,...))*24 > 24
需要注意的问题是time2的格式是没有时分秒的,所以在转换成日期格式后默认的是0点0分0秒
比如
SQL> select to_char(to_date( '2006-10-11 ', 'yyyy-mm-dd '), 'yyyy-mm-dd hh24:mi:ss ') from dual;
TO_CHAR(TO_DATE( '2006-10-11 ', '
------------------------------
2006-10-11 00:00:00
------解决方案--------------------如果是TIME1,TIME2是字符型,那么就需要转换,
SELECT time1,time2 FROM table_name where TO_DATE(time2, 'yyyy-mm-dd ')-TO_DATE(time1, 'yyyy-mm-dd hh24:mi:ss ')> 2
如果time1,time2是日期型,
SELECT time1,time2 FROM table_name where time2-time1> 2
分两种情况,应该可行了