繁体   English   中英

如何使用MySQL按日期过滤数据(从JCalendar获取)

[英]How to filter data by date (obtained from a JCalendar) using MySQL

我很难按日期过滤数据

MySQL查询

public DefaultTableModel getData1(Date start,Date end){
.......
 String sql = "SELECT * FROM torch.new_table WHERE pro_date between '"+start+"' and '"+end+"'";
.....
}

从JCalendar获取日期的代码

DefaultTableModel dm = new Products().getData1(sDate.getDate(), eDate.getDate());

完整的代码在这里: http : //postimg.org/image/4zycbtj4n/

使用通配符“?” 在定义查询时。

使用setDate和一个新的java.sql.Date替换每个通配符。

...

String sql = "SELECT * FROM torch.new_table WHERE pro_date between ? and ?";

PreparedStatement ps = con.prepareStatement(sql);

ps.setDate(1, new java.sql.Date(start.getTime());
ps.setDate(2, new java.sql.Date(end.getTime());

ResultSet rs = ps.executeQuery();
...

如果您从JDateChooser获得字符串,则可以使用

ps.setDate(1, java.sql.Date.valueOf(start));
ps.setDate(2, java.sql.Date.valueOf(end));

这里有更多的可能性在PreparedStatement中使用setDate

使用MySQL按日期过滤数据的一部分代码(从jCalender获得)

感谢您的帮助@RubioRic

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

// dateT和dateE类型jDatechooser

    String get = sdf.format(dateT.getDate());

    String get1 = sdf.format(dateE.getDate());

//查询以选择从数据库获取数据

    String sql = "SELECT * FROM date WHERE DATE(Date) >=   ?  && DATE(Date)  <= ?";

    try{

        Connection conn = dataB.mySqlCon();

        PreparedStatement st = conn.prepareStatement(sql);

       st.setString(1, get);
       st.setString(2, get1);

        ResultSet rs = st.executeQuery();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM