Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631

    problema di formattazione con java.sql.Date

    ciao ragazzi ho un problema col settaggio della data
    mi esce questo problema
    codice:
    java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Date
    da premettere che uso mysql come database, e ottengo la data da mysql col il Resulset rs.getDate

    cosa può essere??
    quando il diavolo ti accarezza è perchè vuole la tua anima

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Credo che il problema sia dovuto al fatto che la data base, ovvero la minima data rappresentabile da un oggetto java.sql.Date è 1 gennaio 1970, che tradotto equivale a '1970-01-01'. Una data come quella restituita dal DB ('0000-00-00') non è rappresentabile tramite l'oggetto java.sql.Date.

    Lo si può logicamente desumere dal fatto che il costruttore dell'oggetto Date prende come parametro un valore che rappresenta il numero di millisecondi trascorsi da quella data (data base). La data '0000-00-00' dovrebbe essere rappresentata tramite un valore negativo, ma tutti i valori negativi passati al costruttore vengono "ignorati" e viene imposto lo 0.

    java.sql.Date
    A thin wrapper around a millisecond value that allows JDBC to identify this as an SQL DATE value. A milliseconds value represents the number of milliseconds that have passed since January 1, 1970 00:00:00.000 GMT.
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    quindi scusa cosa dovrei fare all'istruzione??
    codice:
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery(query);
    Date data = rs.getDate(5);
    quando il diavolo ti accarezza è perchè vuole la tua anima

  4. #4
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    ho scoperto
    praticamente non mi bisogna lasciare il default, altrimenti dà errore...
    ora cosa posso mettere come struzione nel codice per darmi l'errore e fargli accettare 0000-00-00?
    una soluzione è metterlo nel try catcj sqlexception??
    quando il diavolo ti accarezza è perchè vuole la tua anima

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.