我在MySQL表中有一个时间段,它被列为字符串列。时间值为:2017~07 02 00∶00∶05。我创建了一个JFrand,JcomboBoxes可以选择时间:
public static String StartTime;
public static String EndTime;
public TimeChooser() {
initComponents();
Statement st = null;
String query = "SELECT time FROM ceiloTable";
try{
Connection con = getConnection();
st = con.createStatement();
ResultSet rs = st.executeQuery(query);
while(rs.next()){
jComboBox1.addItem(rs.getString("time"));
jComboBox2.addItem(rs.getString("time"));
}
}catch(Exception e){}
private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {
StartTime = jComboBox1.getSelectedItem().toString();}
private void jComboBox2ActionPerformed(java.awt.event.ActionEvent evt) {
EndTime = jComboBox2.getSelectedItem().toString();}
我将这些字符串提供给Java代码,在这里我使用SELECT语句:
NewJFrame_DB jframe = new NewJFrame_DB();
jframe.STime = StartTime;
jframe.ETime = EndTime;
当我在select语句中使用这些字符串时:
PreparedStatement statement= con.prepareStatement("SELECT * FROM ceiloTable WHERE time BETWEEN " + STime + " AND " + ETime);
运行代码后出现以下错误:
java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '00:00:05 AND 2017-07-02 00:01:57' at line 1
似乎我不能使用这些字符串,因为它们包含空格和冒号。由于这个问题,我想使用ID作为开始时间和结束时间的主键,但我不知道如何才能得到他们的ID。有人能告诉我怎么知道开始时间和结束时间吗?感谢您提前回复!