String sql="select id from period where '"+systemDate+"' between startDate and endDate";
我需要执行这个查询,我使用的是oracle 10g。我想获取这些日期之间的 id。我面临的问题是在oracle中我的日期格式是“dd-mon-yy”而systemDate的格式是yyyy-mm-dd。那么有什么方法可以将java日期转换为dd-mon-格式或任何其他执行方式上述查询...
请帮忙。
您应该将 java.util.Date 转换为 java.sql.Date 并使用PreparedStatement,如下所示:
java.util.Date jStartDate = ...; //your "java" date object
java.sql.Date startDate = new java.sql.Date(jStartDate.getTime());
java.util.Date jEndDate = ...;
java.sql.Date endDate = new java.sql.Date(jEndDate.getTime());
PreparedStatement p = connection.prepareStatement("select id from period where systemDate between ? and ?");
p.setDate(1, startDate);
p.setDate(2, endDate);
ResultSet rs = p.executeQuery();
Java 有日期格式化类。
DateFormat
是这些的抽象父类,SimpleDateFormat
这里可能是你想要的
SimpleDateFormat oracleStyle = new SimpleDateFormat("dd-MM-yy");
String dString = oracleStyle.format(systemDate);
String sql="select id from period where '"+systemDate+"' between startDate and endDate";
我还没有测试过这个。格式调用可能需要新的字符串缓冲区作为参数,并且我的格式字符串可能会关闭,但这就是想法。阅读文档