Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何根据今天的日期从表中提取10天的数据_Java_Mysql_Sql_Date_Days - Fatal编程技术网

Java 如何根据今天的日期从表中提取10天的数据

Java 如何根据今天的日期从表中提取10天的数据,java,mysql,sql,date,days,Java,Mysql,Sql,Date,Days,我有表格where is search box。我想在这个搜索框中输入今天的日期并点击submit按钮后,我从数据库中获得10天的返回记录。我在表中有以下列(表名=IssuedDevices)。 设备ID、员工ID、员工姓名、员工Ext、发布日期 当我使用以下查询并输入“issue\u date”列中的日期以获取该日期的记录时。 pst=con.prepareStatement(“从发布设备中选择*,其中发布日期=”+str+”) 当我像下面这样写查询时,什么都没有发生 pst=con.prep

我有表格where is search box。我想在这个搜索框中输入今天的日期并点击submit按钮后,我从数据库中获得10天的返回记录。我在表中有以下列(表名=IssuedDevices)。 设备ID、员工ID、员工姓名、员工Ext、发布日期

当我使用以下查询并输入“issue\u date”列中的日期以获取该日期的记录时。
pst=con.prepareStatement(“从发布设备中选择*,其中发布日期=”+str+”)

当我像下面这样写查询时,什么都没有发生
pst=con.prepareStatement(“从发布设备中选择*,其中发布日期=”“+str+”-间隔“10”天”)

试试看
{
字符串str=tf5.getText();
Connection con=DB.getConnection();

PreparedStatement st=con.prepareStatement(“从发布设备中选择*,其中发布日期=?”; //PreparedStatement st=con.prepareStatement(“从发布设备中选择*,其中发布日期>系统日期-间隔“10”天;”); st.setString(1,str); 结果集rs=st.executeQuery(); //向量v=新向量(); 如果(rs.next()) { frame1=新的JFrame(“数据库搜索结果”); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setLayout(新的BorderLayout()); //TableModel tm=新的TableModel(); DefaultTableModel=新的DefaultTableModel(); model.setColumnIdentifiers(columnNames); table=新的JTable(); 表2.setModel(model); table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS); 表.setFillsViewPerthweight(真); JScrollPane scroll=新的JScrollPane(表); scroll.setHorizontalScrollBarPolicy( JScrollPane.水平滚动条(根据需要); scroll.setVerticalScrollBarPolicy( JScrollPane.垂直滚动条(根据需要); //from=(字符串)c1.getSelectedItem(); 字符串id=“”; 字符串设备_ID=“”; 字符串Employee_id=“”; 字符串Employee_Name=“”; 字符串Employee_Ext=“”; 字符串Issue_Date=“”; 试一试{
//pst=con.prepareStatement(“从发布设备中选择*,其中发布日期=“+str+””);
pst=con.prepareStatement(“从发布设备中选择*,其中发布日期介于“+str+”—间隔“11”天和“+str+”””);
//pst=con.prepareStatement(“从发布设备中选择*,其中发布日期=”“+str+”-间隔“10”天”); ResultSet rs1=pst.executeQuery(); int i=0; if(rs1.next()) { id=rs1.getString(“id”); Device_ID=rs1.getString(“Device_ID”); Employee_id=rs1.getString(“Employee_id”); Employee_Name=rs1.getString(“Employee_Name”); Employee_Ext=rs1.getString(“Employee_Ext”); Issue_Date=rs1.getString(“Issue_Date”); addRow(新对象[]{id,设备id,员工id,员工姓名,员工Ext,发布日期}); i++; } if(i<1) { showMessageDialog(null,“未找到记录”,“错误”,JOptionPane.Error\u消息); } 如果(i==1) { System.out.println(i+“找到记录”); } 其他的 { System.out.println(i+“找到记录”); } } 捕获(例外情况除外) { showMessageDialog(null,例如getMessage(),“Error”,JOptionPane.Error_MESSAGE); } frame1.添加(滚动); frame1.setVisible(true); 框架1.设置尺寸(400300); } 圣克洛斯(); rs.close(); } 捕获(例外e) { showMessageDialog(null,“未找到名称”); }
您正在将查询参数绑定为字符串:

st.setString(1, str);
考虑将其绑定为日期:

st.setDate(1, new SimpleDateFormat("YYYY-MM-DD HH:mm:ss").parse(str));
当然,使用你想要的

您也可以在数据库中进行转换,保留java代码不变,但修改查询:

select * from issuedevices where Issue_Date=STR_TO_DATE(?, "%M %d %Y");

另外考虑将日期与范围进行比较(不要使用“=”,而是使用“>”)< /P> < p>您将绑定查询参数绑定为字符串:

st.setString(1, str);
考虑将其绑定为日期:

st.setDate(1, new SimpleDateFormat("YYYY-MM-DD HH:mm:ss").parse(str));
当然,使用你想要的

您也可以在数据库中进行转换,保留java代码不变,但修改查询:

select * from issuedevices where Issue_Date=STR_TO_DATE(?, "%M %d %Y");

考虑将日期与范围进行比较(不要使用“=”,而是使用“>”)< /P> JavaTimes和JDBC 4.2 不要手工生成查询字符串。使用参数。不要将日期参数作为字符串传递,而是作为

LocalDate
对象传递。从代码中可以看出,
LocalDate
有一种减去10天(或任何其他天数)的方法

链接:解释如何使用java.time。

java.time和JDBC