Java Oracle 日期

问题描述 投票:0回答:2
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-格式或任何其他执行方式上述查询...

请帮忙。

jdbc oracle10g
2个回答
2
投票

您应该将 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();

0
投票

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

我还没有测试过这个。格式调用可能需要新的字符串缓冲区作为参数,并且我的格式字符串可能会关闭,但这就是想法。阅读文档

© www.soinside.com 2019 - 2024. All rights reserved.