Я использую grails / groovy, и из моего контроллера я в настоящее время делаю это для извлечения поля из таблицы Mysql, содержащей поле datetime
SimpleDateFormat Sformat = new SimpleDateFormat("yyyy-MM-dd");
String format_datenow = Sformat.format(new Date());
String format_dateprevious = Sformat.format(new Date() -31);
String markerCalcQuery =
"select sum(trans_cnt) as t_cnt, location from map2_data where fdate between '"+format_dateprevious+"' and '"+format_dateprevious+"' and res_id = "+res_id+" group by map2_data.location";
res_row=gurculsql.rows(markerCalcQuery);
Приведенный выше запрос завершается неудачно в Oracle11g с ошибкой
ORA-01843: недействительный месяц.
Ошибка, которую я чувствую, заключается в том, что MySQL сохраняет дату в этом формате: 2011-12-28 02:58:26
, а Oracle хранит дату следующим образом: 28-DEC-11 02.58.26.455000000 PM
Как мне сделать код обобщенным, один из способов - заставить базу данных в Oracle хранить дату в том же формате, который, я думаю, должен обрабатывать, а не из кода. Если да, то как изменить формат даты в базе данных Oracle?
Могу ли я указать формат в классе домена grails для map2_data
, чтобы независимо от того, какая это база данных, у нас была дата и время в одном и том же формате.