![](/img/trans.png)
[英]Data truncation error when adding date(using JCalendar) in MySQL
[英]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.