Oracle
 sql >> Database >  >> RDS >> Oracle

Utilizzo di setDate in PreparedStatement

❐ Utilizzo di java.sql.Date

Se la tua tabella ha una colonna di tipo DATE :

  • java.lang.String

    Il metodo java.sql.Date.valueOf(java.lang.String) ha ricevuto una stringa che rappresenta una data nel formato yyyy-[m]m-[d]d . es.:

    ps.setDate(2, java.sql.Date.valueOf("2013-09-04"));
    
  • java.util.Date

    Supponiamo di avere una variabile endDate di tipo java.util.Date , fai la conversione così:

    ps.setDate(2, new java.sql.Date(endDate.getTime());
    
  • Attuale

    Se vuoi inserire la data corrente:

    ps.setDate(2, new java.sql.Date(System.currentTimeMillis()));
    
    // Since Java 8
    ps.setDate(2, java.sql.Date.valueOf(java.time.LocalDate.now()));
    

❐ Utilizzo di java.sql.Timestamp

Se la tua tabella ha una colonna di tipo TIMESTAMP o DATETIME :

  • java.lang.String

    Il metodo java.sql.Timestamp.valueOf(java.lang.String) ha ricevuto una stringa che rappresenta una data nel formato yyyy-[m]m-[d]d hh:mm:ss[.f...] . es.:

    ps.setTimestamp(2, java.sql.Timestamp.valueOf("2013-09-04 13:30:00");
    
  • java.util.Date

    Supponiamo di avere una variabile endDate di tipo java.util.Date , fai la conversione così:

    ps.setTimestamp(2, new java.sql.Timestamp(endDate.getTime()));
    
  • Attuale

    Se hai bisogno del timestamp corrente:

    ps.setTimestamp(2, new java.sql.Timestamp(System.currentTimeMillis()));
    
    // Since Java 8
    ps.setTimestamp(2, java.sql.Timestamp.from(java.time.Instant.now()));
    ps.setTimestamp(2, java.sql.Timestamp.valueOf(java.time.LocalDateTime.now()));