Da Stringa a data sql

di Anonimizzato13657 il
4 risposte
Ciao a tutti,
come da titolo, ho un problema con l'inserimento di date in formato smalldatetime (sqlserver 2014). Parto da una stringa in formato gg/mm/aaaa hh:mm:ss e voglio scriverla per come è sulla tabella di sqlserver. Questo è il codice incriminato:

private DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss", Locale.ITALY);
    private Calendar cal = Calendar.getInstance();

private java.sql.Date datep31=null;
private java.util.Date datesql = null;

try {    
                datesql=dateFormat.parse(jTextFieldInizio.getText());
            } catch (ParseException ex) {
                Logger.getLogger(Preparativa.class.getName()).log(Level.SEVERE, null, ex);
            }
            datep31=new java.sql.Date(datesql.getTime());


statement.setDate(55, datep31);

la data viene memorizzata sulla tabella come gg/mm/aaaa 00:00:00, in pratica non memorizza l'orario...
Qualcuno sa aiutarmi? Grazie anticipate a tutti

4 Risposte

  • loop4633 ha scritto:


    la data viene memorizzata sulla tabella come gg/mm/aaaa 00:00:00, in pratica non memorizza l'orario...
    Qualcuno sa aiutarmi? Grazie anticipate a tutti
    java.sql.Timestamp
  • Ciao, intanto grazie per la tua risposta, purtroppo col timestamp avevo provato... ci sto impazzendo.
    Col timestamp l'inserimento su db funziona correttamente infatti se accedo alla tabella vedo ad esempio 2015-06-12 10:30:00, ma quando deve restituirmi il dato nel TextField vedo 12/06/2015 00:00:00

    Ma perchè???
  • loop4633 ha scritto:


    ma quando deve restituirmi il dato nel TextField vedo 12/06/2015 00:00:00

    Ma perchè???
    Come fai la lettura?
    Se con un PreparedStatement usi setTimestamp, con un ResultSet userai getTimestamp. Perlomeno su questo la API JDBC è "speculare".
  • Perchè sono un pirla, ecco perchè! Hai perfettamente ragione, io facevo getDate!!

    Grazie infinite ho perso ore oggi per questa stupidata
    Ciao
Devi accedere o registrarti per scrivere nel forum
4 risposte