2014-11-21 20 views
0
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我想比較D1變量SQL列在Java

比較和d是我的數據庫列日期和D1是我的計算機最新

+0

「電腦給我看D1不能比擬的d「不,你的編譯器給你一個特定的錯誤信息。 [編輯你的問題](http://stackoverflow.com/posts/27060849/edit)並把這個錯誤信息。你還需要描述你的Table5結構。我們現在怎麼樣d和d1是什麼類型? – 2014-11-21 12:12:45

回答

0

檢查你有什麼在你的java類中導入。有兩個不同的日期。 java.sql.Date和java.util.Date。你可以更好的轉換爲相同類型或轉換爲秒,比較...

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();