Как получить конкретный тип даты в Java - PullRequest
0 голосов
/ 02 июня 2011

Я использую метод ниже, чтобы получить эту строку to_date('2011/06/02','yyyy/mm/dd')

private static String getOperationDate() {
  Date today= new Date();
  String output;
  SimpleDateFormat formatter;
  String pattern="yyyy/MM/dd";

  formatter = new SimpleDateFormat(pattern, Locale.US);
  output = formatter.format(today);
  String temp="to_date('"+output+"','yyyy/mm/dd')";

  return temp;
}

Как я могу сгенерировать что-то вроде этого to_date('2011-05-27 12:45:56.1',....) то есть, кроме только даты, как я могу также включить время с миллисекундами,который затем будет обновлен до базы данных

Добавлен оператор вставки оракула , после ссылки на ответ trutheality, но это дает мне 01810. 00000 - "format code appears twice" ошибка

INSERT INTO CONFIG_INFO(CFG_ID,CFG_NAME,CFG_DESC,CFG_TYPE,FILE_NAME,ABSOLUTE_PATH,EMAIL_ADDRESS,PROJECT_ID,HOSTNAME,CREATE_DATE,UPDATE_DATE,STATE,PRODUCT_ID)
    VALUES (config_seq.NEXTVAL,'Abhishek','as','Production','asdclient1.xml','E:tomcat 5.5bin/../webapps/asd/files/asdclient.xml','a@a.com','ABC','abhinix',to_date('2011/06/02 11:18:38.211','yyyy/MM/dd HH:mm:ss.SSS'),to_date('2011/06/02 11:18:38.211','yyyy/MM/dd HH:mm:ss.SSS'),2,123456)

Ответы [ 3 ]

1 голос
/ 15 апреля 2013

Я знаю, это старый поток, но я только что столкнулся с подобной проблемой с тем же сообщением об ошибке. Хорошее решение уже найдено, но я думаю, что мой вывод стоит упомянуть.

Для меня основная проблема в генерируемом выражении:

to_date('2011/06/02 11:18:38','yyyy/MM/dd HH:mm:ss')

потому что код для минут отличается для оракула (где будет оцениваться выражение) от java :: 'mi', так как 'mm' зарезервирован на месяцы (верхний и нижний регистр на самом деле не имеет значения, упомянутая документация скорее о java, чем sql).
Полученное сообщение об ошибке касается двойной ссылки на параметр «мм», которой следует избегать. Правильное использование это что-то вроде этого:

to_date('2011/06/02 11:18:38','yyyy/mm/dd hh:mi:ss')
1 голос
/ 02 июня 2011

Посмотрите на документы и выясните, какой должна быть строка формата.

Вероятно, что-то вроде

String pattern = "yyyy-MM-dd HH:mm:ss.SSS";

Но правильный способ - использовать драйвер JDBC, как указала OMG Ponies.

0 голосов
/ 02 июня 2011

Сделай это

 private static String getOperationDate() {
 Date today= new Date();
 String output;
 SimpleDateFormat formatter;
 String pattern="yyyy/MM/dd HH:mm:ss.SSS";

 formatter = new SimpleDateFormat(pattern, Locale.US);
 output = formatter.format(today);
 String temp="to_date('"+output+"','yyyy/mm/dd')";

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