2016-04-24 15 views
0

Ich versuche, eine harte Zeit,Wie Daten nach Datum filtern (von JCalendar erhalten) mit MySQL

MySQL Query

public DefaultTableModel getData1(Date start,Date end){ 
....... 
String sql = "SELECT * FROM torch.new_table WHERE pro_date between '"+start+"' and '"+end+"'"; 
..... 
} 

-Code von einem JCalendar für get aktuellen Daten nach Datum zu filtern

DefaultTableModel dm = new Products().getData1(sDate.getDate(), eDate.getDate()); 

komplette Code ist hier: http://postimg.org/image/4zycbtj4n/

+0

Verwenden erhalten ein PreparedStatement http://stackoverflow.com/questions/18614836/using- setdate-in-prepared-Anweisung – RubioRic

+0

Wo ist der Teil, der die Anweisungen ausführt? – Priyamal

+0

Der vollständige Code ist hier: http://postimg.org/image/4zycbtj4n/ –

Antwort

1

der Platzhalter '?' wenn Sie die Abfrage definieren.

Ersetzen Sie jeden Platzhalter mit setDate und einem neuen 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(); 
... 

Wenn Sie einen String aus einem JDateChooser erhalten, können Sie

ps.setDate(1, java.sql.Date.valueOf(start)); 
ps.setDate(2, java.sql.Date.valueOf(end)); 

Weitere Möglichkeiten hier Using setDate in PreparedStatement

+0

in jdateChooser kann String nicht in lange PLZ konvertieren Hilfe –

+0

@MuhammadKashifSaeed Ich habe meine Antwort zu aktualisieren. – RubioRic

+0

kann Symbolsymbol nicht finden: Klasse valueOf Ort: Datum :(???? –

0

Teil von Codedaten nach Datum filtern (Gewonnen aus einer jCalender) mit MySQL

Vielen Dank für Ihre Hilfe @RubioRic

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 

// Tagt und datée Typ jDatechooser

String get = sdf.format(dateT.getDate()); 

    String get1 = sdf.format(dateE.getDate()); 

// Abfrage auswählen, um Daten aus der Datenbank

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