关于oracle中根据时间范围查询数据

在oracle中根据给出的两个时间,查询出这一时间段的数据。

有几个方法:
1.

select * from tablename where time>= to_date(' "+beginTime+" ','yyyy-mm-dd')  and  time<=to_date("+endTime+" ','yyyy-mm-dd')

这一方法包括beginTime,不包括endTime,要是想包括endTime,可以将endTime往后推一天,我用的是字符串拼接的方式:

String[] end=endDate.split("-");
                if(end[1] == "1" || end[1] == "3" || end[1] == "5" || end[1] == "7" || end[1] == "8" || end[1] == "10" || end[1] == "12"){
                    if(end[2] == "31"){
                        int end11=Integer.parseInt(end[1]);
                        end11+=1;
                        end[1]=Integer.toString(end11);
                        end[2]=String.valueOf(01);
                    }
                }else if(end[1] == "4" || end[1] == "6" || end[1] == "9" || end[1] == "11"){
                    if(end[2] == "30"){
                        int end11=Integer.parseInt(end[1]);
                        end11+=1;
                        end[1]=Integer.toString(end11);
                        end[2]=String.valueOf(01);
                    }
                }else if(end[1] == "2"){
                    //闰年的情况
                    int end00=Integer.parseInt(end[0]);
                    if(end00%4==0 && end00%100!=0){
                        if(end[2] == "29"){end[2]=String.valueOf(01);}
                    }else if(end00%400==0){
                        if(end[2] == "29"){end[2]=String.valueOf(01);}
                    }else{
                        if(end[2] == "28"){end[2]=String.valueOf(01);}
                    }   
                }
                int end22=Integer.parseInt(end[2]);
                end22+=1;
                end[2]=Integer.toString(end22);
                endDate=end``
0]+"-"+end[1]+"-"+end[2];

因为加了闰年判断和是否是当月最后一天的判断所以比较繁琐,但是中心思想就是把获取的时间字符串根据分隔符拆分成数组,然后天数加一,如果是当月最后一天德华,月数加一。
2.

select * from tablename where to_char(time,'yyyy-mm-dd')>='"+beginTime+"'  and to_char(time,'yyyy-mm-dd')<='"+endTime+"'

这一方法包含beginTime和endTime。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值