Неверный формат даты в SQL
Формирую дату java.sql.Date в формате ГГГГ.ММ.ДД при запросе between cast('2019-02-07' as datetime) and cast('2020-08-26' as datetime) он мне пишет "выход за пределы диапазона..." меняю местами 08 и 26 все ОК, значит он принимает дату как ГГГГ.ДД.ММ, как задать правильный формат времени в Java-коде? Также пробую менять местами 08 и 26 но java.sql.date ругается. Подскажите что можно сделать в данной ситуации?
UPD1: запрос:
SELECT et.id AS ID,
pt.short_name AS [Команда проекта],
a.actv_code_name AS Дисциплина,
r3.rsrc_catg_name AS Роль,
r.rsrc_short_name AS Сотрудник,
et.target_hr AS [План Т/З],
et.target_start AS [План. старт],
et.target_finish AS [План. финиш],
et.create_date AS [Дата добавления],
et.update_date AS [Дата изменения],
et.create_user AS [Кто создал],
et.update_user AS [Кто изменил]
FROM exec_team AS et INNER JOIN RSRC AS r ON r.rsrc_id = et.rsrc_id INNER JOIN project_team AS pt ON et.kip_id = pt.id INNER JOIN ACTVCODE AS a ON a.actv_code_id = et.dis_id AND a.actv_code_type_id = 7347 INNER JOIN RCATVAL AS r3 ON et.role_id = r3.rsrc_catg_id AND r3.rsrc_catg_type_id = 17071
where et.target_start between cast('2019-02-07' as datetime) and cast('2020-26-08' as datetime) order by et.target_start
P.S. дата введена вручную для проверки
Дата приходит с формы jsp в формате ГГГГ-ММ-ДД Как формируется дата:
Date d1;
if(req.getParameter("d1").equals("")!=true){
d1=Date.valueOf(req.getParameter("d1"));
}
else{
d1=null;
}
Date d2;
if(req.getParameter("d2").equals("")!=true) {
d2 = Date.valueOf(req.getParameter("d2"));
}
else{
d2=Date.valueOf("3000-01-01");
}
filt = FilterBD.FilterPlStart(d1,d2);
Ответы (1 шт):
Попробуйте этот способ convert(datetime, '2020-08-26', 'YYYY-DD-MM'). А вообще рекомендую привести все к нормальному формату на стороне приложения.