我想比较sql列和java中的d1变量

时间:2014-11-21 11:56:11

标签: java sql

try{
       Calendar cal = new GregorianCalendar();
       int d1=21;

       int m1 = cal.get(Calendar.MONTH);
       int y1 = cal.get(Calendar.YEAR);

       Class.forName("com.mysql.jdbc.Driver");
       String db = "jdbc:mysql://localhost:3306/data1";
       con = DriverManager.getConnection(db,"root","");


       st=con.createStatement();
       String  sql ="SELECT id,name,d,m,y FROM Table5"
               + " WHERE d<d1";

          rs=st.executeQuery(sql);

        tb.setModel(DbUtils.resultSetToTableModel(rs));

          st.close();
          con.close();

} catch(Exception ex){
             JOptionPane.showMessageDialog(null,ex);        
}




String  sql ="SELECT id,name,d,m,y FROM Table5" + " WHERE d<d1";
计算机显示我d1无法与d进行比较

和d是我的数据库列日期,d1是我的计算机日期

2 个答案:

答案 0 :(得分:2)

如果我理解你的问题,你必须做这样的事情:

String sql = "SELECT id,name,d,m,y FROM Table5 WHERE d < ?";
PreparedStatement st=con.prepareStatement(sql);
st.setInt(1, d1);
ResultSet rs = st.executeQuery();

答案 1 :(得分:0)

检查您在java类中导入的内容。有两个不同的日期。 java.sql.Date和java.util.Date。更好的是你可以转换为相同类型或转换为秒并比较......