sql >> Base de Datos >  >> RDS >> Oracle

Usando setDate en PreparedStatement

❐ Usando java.sql.Date

Si su tabla tiene una columna de tipo DATE :

  • java.lang.String

    El método java.sql.Date.valueOf(java.lang.String) recibió una cadena que representa una fecha en el formato yyyy-[m]m-[d]d . por ejemplo:

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

    Suponga que tiene una variable endDate de tipo java.util.Date , haces la conversión así:

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

    Si desea insertar la fecha actual:

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

❐ Usando java.sql.Timestamp

Si su tabla tiene una columna de tipo TIMESTAMP o DATETIME :

  • java.lang.String

    El método java.sql.Timestamp.valueOf(java.lang.String) recibió una cadena que representa una fecha en el formato yyyy-[m]m-[d]d hh:mm:ss[.f...] . por ejemplo:

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

    Suponga que tiene una variable endDate de tipo java.util.Date , haces la conversión así:

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

    Si necesita la marca de tiempo actual:

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