Mysql
 sql >> Baza danych >  >> RDS >> Mysql

BETWEEN zapytanie przy użyciu JDBC z MySQL

W MySQL DATE wpisz mapy do klasy Java java.sql.Timestamp . Powinieneś więc pracować z tym typem, aby zbudować zapytanie, a nie z java.util.Date . Oto kod, który generuje dwa potrzebne sygnatury czasowe:

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
java.util.Date startDate = formatter.parse(startDate);
java.util.Date endDate   = formatter.parse(endDate);

java.sql.Timestamp start = new Timestamp(startDate.getTime());
java.sql.Timestamp end   = new Timestamp(endDate.getTime());

Następnie użyj swojego pierwszego BETWEEN zapytanie, aby uzyskać wynik:

PreparedStatement ps = con.prepareStatement("SELECT * FROM project.order
                                             WHERE PO_Date BETWEEN ? AND ?");
ps.setTimestamp(1, start);
ps.setTimestamp(2, end)

Zauważ, że używam sparametryzowanego PreparedStatement , co pozwala uniknąć (lub przynajmniej znacznie zmniejsza) możliwość wstrzyknięcia SQL.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL PODOBNE + php sprintf

  2. Problem z dodaniem klucza obcego za pomocą Alter Table z istniejącą bazą danych MYSQL - nie można go dodać! Pomoc!

  3. MySQL> Tabela nie istnieje. Ale to robi (albo powinno)

  4. Nie można przekonwertować błędu Nifi PutSQL Timestamp/Datetime error

  5. Problem z kodowaniem UTF8 – z dobrymi przykładami