Zdravim, Jedine spravne reseni je pouzit PreparedStatement:
Date b = new java.sql.Timestamp(System.currentTimeMillis()); String sql = "SELECT * FROM tasks WHERE id_user=? WHERE datum_splneni <= ? ORDER BY datum_vlozeni ASC"; PreparedStatement stmt = dbConn.prepareStatement(sql); stmt.setString(1, id_user); stmt.setDate(2, b); Nejenom ze to bude fungovat na MySQL, ale i na vsech ostatnich databazich. A jako bonus nebude mit nahodny navstevnik otevreny pristup do databaze! (SQL Injection) Neodpustim si poznamku: Plaintextove sestavovani SQL (navic bez escapovani) je zcela bezna zacatecnicka chyba. Kazdy z nas tim prosel. Ale ze se na tento dotaz sesly hned tri odpovedi bez jedine zminky o PreparedStatement, to je docela... prekvapive. > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] Behalf Of Michal Davídek > Sent: Thursday, December 21, 2006 5:10 PM > To: [email protected] > Subject: OT: mysql a java > > > Zdravím, mám začátečnický dotaz. > > mám v mysql tabulku se sloupcem datum, formát nastaven na "DATE". > (formátuje to takhle: 2006-12-21) > > potřebuji z tabulky vybrat záznamy, které mají DATE menší > než třeba > dnešní datum, ale nedaří se mi to. > > prikazy: > Date b =new Timestamp(new Date().getTime()); > String sql = "SELECT * FROM tasks WHERE id_user='" +id_user+ "' > WHERE datum_splneni <= "+b+" ORDER BY datum_vlozeni ASC"; > vim, ze to bude tim nastaveni Date b; ale nevim, jak z toho mam > vytáhnout údaj, který by mysql akceptoval, takhle to pořád > hází nějaké > errors. > > poradíte? díky. M. > -- Kamil "podlesh" Podlesak
