Дата Java Oracle - PullRequest
       1

Дата Java Oracle

1 голос
/ 04 марта 2011
String sql="select id from period where '"+systemDate+"' between startDate and endDate";

Мне нужно выполнить этот запрос, и я использую Oracle 10g.Я хочу получить идентификатор, который попадает между этими датами.Проблема, с которой я сталкиваюсь, в oracle, мой формат даты - "dd-mon-yy", а systemDate - в формате yyyy-mm-dd. Таким образом, любой способ преобразовать дату Java в формат dd-mon или любой другой способ выполнитьзапрос выше ...

Пожалуйста, помогите.

Ответы [ 2 ]

2 голосов
/ 04 марта 2011

Вы должны преобразовать вашу 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 голосов
/ 04 марта 2011

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

Я не проверял это.Для вызова формата могут потребоваться новые строковые буферы в качестве аргументов, и моя строка формата может быть отключена, но это идея.Прочитайте документацию

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...