我正在创建一个JSP页面,以在两个日期范围之间从Oracle数据库中选择记录,并显示在HTML页面上。创建了一个JSP页面,并尝试通过datepicker传递日期不返回任何记录。 Oracle DB中的数据类型是日期
添加了Java解析功能,更改了日期选择器格式等,但是这些都不起作用。任何帮助表示赞赏。
我的代码如下
$( function() {
$( "#datepicker" ).datepicker({ changeMonth: true, changeYear: true });
$( "#datepicker" ).datepicker( "option", "dateFormat", "dd-mm-yy");
java.text.DateFormat format = new java.text.SimpleDateFormat("dd-mm-yy");
java.util.Date da = format.parse(from_date);
String to_date=request.getParameter("to_date");
java.text.DateFormat format1 = new java.text.SimpleDateFormat("dd-mm-yy");
java.util.Date ta = format1.parse(to_date);
java.text.DateFormat format = new java.text.SimpleDateFormat("dd-mm-yy");
select * from table 1actual_start between '"+da+"' and '"+ta+"'");
答案 0 :(得分:0)
在code snippet
下面将以dd-mm-yyyy
格式给您提供日期,然后您可以将其传递到jsp
页并将其放在您的select
查询中。
$('#d1 , #d2').datepicker({
dateFormat: 'dd-mm-yy',
changeMonth: true,
changeYear: true
});
<link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/themes/base/jquery-ui.css" rel="stylesheet" />
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
Date1: <input type="text" name="ab" id="d1" />
Date2: <input type="text" name="ab1" id="d2" />
然后在您的jsp
页中执行以下操作:
java.sql.Date d1=null;
java.sql.Date d2=null;
//getting date
String ab=request.getParameter("ab");
String ab1=request.getParameter("ab1");
//putting date it in below format i.e:dd-MM-YYYY
SimpleDateFormat s1=new SimpleDateFormat("dd-MM-YYYY");
try {
java.util.Date date1=s1.parse(ab);
//d1 will have your correct format date
d1=new java.sql.Date(date1.getTime());
} catch (ParseException ex) {
Logger.getLogger(YourClassname.class.getName()).log(Level.SEVERE, null, ex);
}
try {
java.util.Date date2=s1.parse(ab1);
//d2 will have your correct format date
d2=new java.sql.Date(date2.getTime());
} catch (ParseException ex) {
Logger.getLogger(YourClassname.class.getName()).log(Level.SEVERE, null, ex);
}
//pass d1 & d2 in your query
PreparedStatement ps = con.prepareStatement(" select * from table1 where actual_start between ? and ? ");
ps.setDate(1,d1);
ps.setDate(2,d2);
ResultSet data =ps.executeQuery();
while(data.next()){
//do something
}