【发布时间】:2016-05-10 16:54:37
【问题描述】:
我正在使用 JDBC 连接和 Java Swing UI,并且在那里我使用了 SqLite DB。
这里我有一个 java 组件,它是 jCalender 来获取日期,我将日期选择为字符串。
首先我将字符串转换为 java.util 日期,然后我将 java.util.date 转换为 java.sql.date,但我的日期字符串格式是 "dd/MM/YYYY" &
然后
DateFormat 格式 = new SimpleDateFormat("dd/MM/YYYY", Locale.ENGLISH);
我设置了上面写的特定日期格式。但是当我在日期之间搜索记录时仍然存在问题。
这里我附上了一份代码,请帮助我,这非常重要。
String from_date = ((JTextField) txt_bilty_date_start.getDateEditor().getUiComponent()).getText();
String to_date = ((JTextField) txt_bilty_date_end.getDateEditor().getUiComponent()).getText();
DateFormat format = new SimpleDateFormat("dd/MM/YYYY", Locale.ENGLISH);
Date date1 = format.parse(from_date);
Date date2= format.parse(to_date);
java.sql.Date sqlDate1 = new java.sql.Date(date1.getTime());
java.sql.Date sqlDate2 = new java.sql.Date(date2.getTime());
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/YYYY");
System.out.println("\t\tafter change date");
System.out.println(sdf.format(sqlDate1));
System.out.println(sdf.format(sqlDate2));
String sql = "select * from employee where record_date BETWEEN '"+sdf.format(sqlDate1)+"' AND '"+sdf.format(sqlDate2)+"' ";
pst=conn.prepareStatement(sql2);
rs = pst.executeQuery();
tbl_employee.setModel(DbUtils.resultSetToTableModel(rs));
【问题讨论】:
-
"but there still problem when I search record between date."-- 你需要详细说明这一点。 -
如果我上面的评论不完全清楚,这意味着您需要更详细地描述您可能会看到的问题,包括发布任何和所有错误或异常消息和/或详细描述您可能遇到的任何和所有不当行为。
-
本质上,你不在乎,
java.util/sql.Date只是一个容器类,用于表示自 unix 纪元以来的毫秒数,它没有“格式”。只需使用PreparedStatement并将Date对象直接绑定到查询,让驱动程序处理它
标签: java swing sqlite jdbc jcalendar