Stack Overflow на русском Asked on December 28, 2021
Формирую дату 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);
Попробуйте этот способ convert(datetime, '2020-08-26', 'YYYY-DD-MM'). А вообще рекомендую привести все к нормальному формату на стороне приложения.
Answered by VincentVega on December 28, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP