简体   繁体   English

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

[英]how to parse date n java to oracle/sql query?

I have a Query like我有一个类似的查询

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

i will pass **orderName** and lastDate from UI or some constant ("20-9-2016").我将从 UI 或一些常量(“20-9-2016”)传递**orderName**lastDate

orderDate=SYSDATE - 2 --> instead of "2" i will send lastDate. orderDate=SYSDATE - 2 --> 我将发送 lastDate 而不是“2”。

Is it correct?这是正确的吗? SYSDATE oracle function and "2" before constant. SYSDATE oracle 函数和“2”之前的常量。 now "2" can be user input.现在“2”可以是用户输入。

How to write a query in java如何在java中编写查询

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

Is above query correct ?以上查询是否正确? how to write query如何编写查询

    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();
        }
}

for sysdate-?对于 sysdate-? the ?这 ? parameter is to be set object of java.sql.Date class instead of java.util.Date class.参数将被设置为 java.sql.Date 类的对象,而不是 java.util.Date 类。 java.sql.Date inherits java.util.Date. java.sql.Date 继承了 java.util.Date。 java.sql.Date(long time) here long is number of milliseconds lapsed since jan1,1979. java.sql.Date(long time) 这里的 long 是自 1979 年 1 月 1 日以来经过的毫秒数。

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); ' '

pass sqldt object in setDate() method of preparedstatement instance.在 Preparedstatement 实例的 setDate() 方法中传递 sqldt 对象。

hope this works希望这有效


alkaramansari1@gmail.com alkaramansari1@gmail.com

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM