如何解析日期n java到oracle / sql查询?

时间:2016-09-29 08:55:35

标签: java sql oracle jdbc

我有像

这样的查询
String query = "Select  * from Orders where ordername = ? and  orderDate > SYSDATE - 2 ";

我会从用户界面或某些常量(“20-9-2016”)传递**orderName**lastDate

orderDate = SYSDATE - 2 - >而不是“2”我将发送lastDate。

这是对的吗? SYSDATE oracle函数和“2”之前的常量。现在“2”可以是用户输入。

如何在java中编写查询

String query = "Select  * from Orders where ordername = ? and  orderDate > SYSDATE - ? ";

以上查询是否正确?如何编写查询

    public class CheckOrders extends MappingSqlQuery<Object>{
        public PendingOrderExists() {
            super(dataSource, queryConfig
                    .getProperty("query"));
            super.declareParameter(new SqlParameter("ORDERNAME", Types.VARCHAR));
            //orderdate ? how to declare parameter here
            compile();
        }
}

1 个答案:

答案 0 :(得分:1)

for sysdate-? 的?参数是设置java.sql.Date类的对象而不是java.util.Date类。 java.sql.Date继承java.util.Date。 java.sql.Date(很长一段时间) 这里的长度是自jan1,1979以来经过的毫秒数。

GregorianCalendar gc=new GregorianCalendar(2000, 25, 2);

java.util.Date dt=gc.getTime(); long lg=dt.getTime(); java.sql.Date sqldt=new java.sql.Date(lg);

在preparedstatement instance的setDate()方法中传递sqldt对象。

希望这有效

<小时/> alkaramansari1@gmail.com