Javascript 当年度发生变化时,开始日期和结束日期不起作用
我使用了一个日期选择器来选择开始日期和结束日期,如下所示Javascript 当年度发生变化时,开始日期和结束日期不起作用,javascript,java,sql,jsp,date,Javascript,Java,Sql,Jsp,Date,我使用了一个日期选择器来选择开始日期和结束日期,如下所示 <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <script src="//code.jquery.com/jquery-1.10.2.js"></script> <script src="//code.jqu
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script type="text/javascript">
$(function () {
$( "#startDate" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd-mm-yy'
});
$( "#endDate" ).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'dd-mm-yy'
});
});
</script>
<style type="text/css">
.search_textbx
{
background-image:url('/SalesPropeller/calendar.jpg');
background-repeat:no-repeat;
background-position:right;
}
</style>
<form name="form" action="quotationSearchResult.jsp" method="post">
<input type="text" id="startDate" name="startDate" class="search_textbx" readonly="readonly" placeholder="    dd-mm-yyyy"/>
<input type="text" id="endDate" name="endDate" class="search_textbx" readonly="readonly" placeholder="    dd-mm-yyyy"/></td>
</form>
$(函数(){
$(“#开始日期”)。日期选择器({
变化月:对,
变化年:是的,
日期格式:“dd-mm-yy”
});
$(“#endDate”).datepicker({
变化月:对,
变化年:是的,
日期格式:“dd-mm-yy”
});
});
.search_textbx
{
背景图像:url('/salesspiller/calendar.jpg');
背景重复:无重复;
背景位置:右;
}
quotationSearchResult.jsp
<div id="divRight">
<%
int count = 0;
int SlNo=1;
%>
<hr />
<h3>Search Result for <u><%= request.getParameter("companyName")%></u> is : </h3>
<hr/>
<div id="divtable_wrapper">
<div id="divtbody" style="height: 470px;">
<form method="post" name="form">
<table class="divtable" width="1140">
<div id="divheader">
<thead>
<tr>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">Sl.NO</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">CompanyName</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">RefNo</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">Quot.Date</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">UserName</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">Grand Total</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">CST</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">VAT5.5</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">VAT14.5</th>
<th style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">ServiceTax</th>
<th colspan="1" style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;background: beige;">Action</th>
</tr>
</thead>
</div>
<%
//Connection con = null;
Object o2 = session.getAttribute("email");
String email = o2.toString();
String companyName = request.getParameter("companyName");
String startDate=request.getParameter("startDate");
String endDate=request.getParameter("endDate");
int cId=0;
//Statement st, st1;
try {
DBConnect db = new DBConnect();
Connection con = db.getCon();
Statement st = con.createStatement();
// System.out.println("At SearchResult.jsp:" + email + "," + category + "," + search + "," + search_tf);
ResultSet rs = st.executeQuery("Select CId,CompanyName,RefNo,Date,UserName,GrandTotal,CST,VAT5,VAT14,ServiceTax from marketing_database.quotationclient_details where companyName='"+companyName+"' AND Date BETWEEN '"+startDate+"' AND '"+endDate+"';");
// String q2 = "update dummy set category='" + category + "' where id = '1';";
// st1.executeUpdate(q2); // To insert the category name to dummy table in database
%>
<%
while (rs.next()) {
%>
<tr><td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td1"><%=SlNo%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td2"><%=rs.getString(2)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td3"><%=rs.getString(3)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td4"><%=rs.getString(4)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td5"><%=rs.getString(5)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td6"><%=rs.getString(6)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td7"><%=rs.getString(7)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td8"><%=rs.getString(8)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td9"><%=rs.getString(9)%></td>
<td style="padding:1px 5px;border-right:1px solid #d47f66;border-bottom:1px solid #d47f66;" class="td10"><%=rs.getString(10)%></td>
<td style="padding:1px 5px;border-bottom:1px solid #d47f66;" class="td12"><input type="button" name="edit" value="Report" style="background-color:#49743D;font-weight:bold;color:#ffffff;" onclick="generateReport(<%= rs.getString(1)%>);" ></td>
<% count++;
SlNo++;%>
</tr>
<%
}
%>
<%
} catch (Exception e) {
e.printStackTrace();
}
%>
</table>
</form>
<br>
<span style="float: left;"> <b><%= count%></b> Search Result Found.</span>
<br><br>
</div>
</div>
</div>
搜索结果为:
序号
公司名称
参考号
报价日期
用户名
总计
CST
VAT5.5
第14.5条
服务税
行动
找到搜索结果。
当我给出起始日期为“01-01-2016”和结束日期为“31-01-2016”时,它正在获取如图所示的记录
但当我将起始日期指定为“07-12-2015”,将结束日期指定为“18-01-2016”时,它并没有获取如图所示的记录
那么发生了什么,为什么不能正确地比较年份呢?我也是sql数据库
问题在于“Date”列是一个
varchar
,数据库中正确的格式是Date
,而且“Date”不是一个好的列名称,因为它也是一个MySQL函数
由于保存的日期格式String
不是可排序的格式,因此将日期排序为String的示例如下:
//convert search string to mysql format (note you can define variables for faster code and you should consider handling exceptions)
startDate = new SimpleDateFormat("yyyy-mm-dd").format(new SimpleDateFormat("dd/mm/yyyy").parse(startDate));
endDate = new SimpleDateFormat("yyyy-mm-dd").format(new SimpleDateFormat("dd/mm/yyyy").parse(endDate));
//syntax for query
... AND STR_TO_DATE(`Date`, '%d/%m/%Y') BETWEEN '"+startDate+"' AND '"+endDate+"';"
有关更多信息,请参阅
您还应该考虑使用以避免SQL注入问题。
调试它,确定问题所在。字符串值是否正确
String startDate=request.getParameter(“startDate”)代码>?可能您在2015年12月7日到2016年1月18日之间没有记录发送请求时,请查看开发人员工具中的post数据,并确定发送的是什么。您可以尝试2015年12月7日
到2016年1月31日
?是的,我尝试了您所说的,但无法获取记录为什么是“标准日期”和“开始日期”给出的名称。它们应该相同或不同??事实上,我没有应用“开始日期”和“结束日期”的代码,因此某些日期不匹配。稍后当我仔细阅读您的答案时,我了解到这些行可以改变场景,确实如此。再次感谢