如何在Prepared语句中比较日期

时间:2015-02-20 07:14:58

标签: java oracle prepared-statement

我有Sybase声明,如下所述:

 select s.airbill_nbr, s.orig, s.dest,p.swa_acct_nbr, s.prod_type, s.outbnd_date, s.shppr_name, s.consgn_name,s.shipping_chrg, s.misc_chrg, s.decl_val_chrg, s.tax_amt, s.fuel_chrg,  s.scrty_chrg, s.tot_chrgs, s.tot_pcs, s.tot_chrgbl_wt, s.tot_actl_wt from shipment s, shipment_outbnd_stn o, payment p
    where s.sa_shpmt_nbr = o.sa_shpmt_nbr 
    and o.sa_shpmt_nbr = p.sa_shpmt_nbr
    and o.outbnd_date=convert(date,'01/29/2015',101)
    and s.outbnd_empl_id is not null
    and p.fop_cd = 'SW'
    and p.swa_acct_nbr =40584
    and s.void_flag is null

我必须在Java中为上面的代码创建一个准备好的语句,我创建了下面的一个:

String variable1="29/01/2015";

                psRetrieveAwbData = cattsDbc.prepareStatement( "select s.airbill_nbr, s.orig, s.dest, " +
                        "p.swa_acct_nbr, s.prod_type, s.outbnd_date, s.shppr_name, s.consgn_name, " +
                        "s.shipping_chrg, s.misc_chrg, s.decl_val_chrg, s.tax_amt, s.fuel_chrg, " +
                        "s.scrty_chrg, s.tot_chrgs, s.tot_pcs, s.tot_chrgbl_wt, s.tot_actl_wt " +
                        "from shipment s, shipment_outbnd_stn o, payment p " +
                        "where s.sa_shpmt_nbr = o.sa_shpmt_nbr " +
                        "and o.sa_shpmt_nbr = p.sa_shpmt_nbr " +
                        "and o.outbnd_date = '"+ variable1 +"'" +
                        "and s.outbnd_empl_id is not null " +
                        "and p.fop_cd = 'SW' " +
                        "and p.swa_acct_nbr = " + iAccount +
                        "and s.void_flag is null" );

但是我不知道如何将日期置于日期格式中,因为我把它放在不同的方式是将变量1作为变量1它采取字符串而不是找出解决方案。请你告诉我如何创建准备好的语句,我可以直接输入日期或将日期存储在某个变量中。

1 个答案:

答案 0 :(得分:0)

PreparedStatement pstmt = con.prepareStatement("select s.airbill_nbr, s.orig, s.dest, " +
                        "p.swa_acct_nbr, s.prod_type, s.outbnd_date, s.shppr_name, s.consgn_name, " +
                        "s.shipping_chrg, s.misc_chrg, s.decl_val_chrg, s.tax_amt, s.fuel_chrg, " +
                        "s.scrty_chrg, s.tot_chrgs, s.tot_pcs, s.tot_chrgbl_wt, s.tot_actl_wt " +
                        "from shipment s, shipment_outbnd_stn o, payment p " +
                        "where s.sa_shpmt_nbr = o.sa_shpmt_nbr " +
                        "and o.sa_shpmt_nbr = p.sa_shpmt_nbr " +
                        "and o.outbnd_date = ?" +
                        "and s.outbnd_empl_id is not null " +
                        "and p.fop_cd = 'SW' " +
                        "and p.swa_acct_nbr = " + iAccount +
                        "and s.void_flag is null" );");

   pstmt.setDate (dt);