gpt4 book ai didi

java - 使用文本输入搜索 Access 日期列之间/和

转载 作者:行者123 更新时间:2023-12-01 15:15:34 24 4
gpt4 key购买 nike

我有一个需要 2 个日期的表格。

<form name="dateInput" action="dateResult.jsp" method="get">
<input type="text" name="startDate" />
<input type="text" name="endDate" />
<input type="submit" value="Submit" />
</form>

我希望它能够过滤并显示结果页面上两个输入之间有日期的所有记录。

将文本解析为日期:

<%
DateFormat formatter;
formatter = new SimpleDateFormat("MM/dd/yyyy");

String startDay;
startDay = request.getParameter("startDate");

java.util.Date startingDay = formatter.parse(startDay);

String endDay;
endDay = request.getParameter("endDate");

java.util.Date endingDay = formatter.parse(endDay);
%>

SQL 查询:

rs = stmt.executeQuery( "SELECT * FROM [Inventory Tracking] WHERE [Inventory Tracking].[Purchase_Date] => "+ startingDay +" AND < "+endingDay);

我已经摆弄它几个小时了,我所做的每一个更改要么返回一个空白结果页面,要么返回一个错误页面。我究竟做错了什么?

我应该将 java.util.Date 转换为 java.sql.Date 吗?

我应该使用 BETWEEN/AND 而不是 < 和 > 吗?

最佳答案

您的查询肯定不会工作,因为您最终将执行如下所示的查询:

SELECT * FROM [Inventory Tracking] WHERE [Inventory Tracking].[Purchase_Date] => Jul 25 15:00:40 EDT 2012 AND < Jul 25 15:00:40 EDT 2012.

当然取决于您的日期。如果你只是使用java.sql包,你实际上可以使用PreparedStatement。

PreparedStatement ps = conn.prepareStatement("SELECT * FROM [Inventory Tracking] WHERE [Inventory Tracking].[Purchase_Date] => ? AND [Inventory Tracking].[Purchase_Date] < ?");
try {
ps.setDate(1, endDate);
ps.setDate(2, start);
ResultSet rs = ps.executeQuery();
try {
while (rs.next()) {
// for each row logic
}
} finally {
rs.close()
}
} finally {
ps.close();
}

您的 endDate 和 startDate 应该是 java.sql.Date 的实例。

关于java - 使用文本输入搜索 Access 日期列之间/和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11656570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com