如何获取一周的记录

时间:2018-02-20 10:10:33

标签: java date jdbc

我正在使用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我可以在条件的哪个位置发送变量 请建议

1 个答案:

答案 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";

另请考虑查看Java time APIHow to use PreparedStatement