我正在使用Java 7并提取一周的记录。对于 valid_from 列,我从下面的当前日期减去-7
。 DB中的日期格式为12-FEB-18
。对于 valid_to 列,我使用的是sysdate。我没有得到正确的 valid_from 日期。任何人都可以在这里查看这个错误。
Format formatter = new SimpleDateFormat("dd-MMM-yy");
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -7);
Date todate1 = cal.getTime();
Date startdate = ((DateFormat)formatter).parse(formatter.format(todate1));
System.out.println(todayWithZeroTime);
String sql_qry = "SELECT a.ACCOUNT_ID from tableName a where a.STATUS_TYPE_KEY='ACTIVE' "
+ "and a.VALID_FROM >"
+ startdate+ " and a.VALID_TO > sysdate";
如何在此解析日期。目前我正在Tue Feb 13 00:00:00 GMT 2018
。我希望13-FEB-18
我可以在条件的哪个位置发送变量
请建议
答案 0 :(得分:0)
您要将Date
转换为String
,然后再转换回Date
。
然后您在查询中使用此Date
对象,因此调用toString()
方法并生成String
表示,这可能不是您想要的表示。
避免上次从String
转换为Date
,只需使用
String startdate = formatter.format(todate1);
请注意,您还必须使用引号转义日期字符串:
String sql_qry = "SELECT a.ACCOUNT_ID from tableName a where "
+ "a.STATUS_TYPE_KEY='ACTIVE' "
+ "and a.VALID_FROM > '"
+ startdate+ "' and a.VALID_TO > sysdate";