lunedì 13 febbraio 2012

Mysql e date con tutti ZERO




Leggi l'articolo completo su flaviocdc.net

Premetto che non capirò mai a cosa serva la data 0000-00-00 in quanto se una data non è definita è meglio usare null, premetto inoltre che ho una certa antipatia per MySQL … purtroppo non posso scegliere io la tecnologia da usare quindi mi tocca usare anche MySQL.

Detto ciò, mi sono imbattuto nel problema di come gestire la data 0000-00-00 presente in un db MySQL all'interno di codeice java, ad esempio per recuperara la data da una colonna di una tabella.
Chiaramente il metodo getDate() lancia un'eccezione se trova una data del tipo 0000-00-00 in quanto non è una data (i progettisti di MySQL sanno che i giorni vanno da 1 a 31 ed i mesi da 1 a 12???); a me non piace neanche usare getString() e/o usare vari try/catch quindi cercando su internet ho trovato un'altra soluzione: modificare la URL JDBC in modo da passare null al posto delle date 0000-00-00 Tale URL è simile alla seguente

jdbc:mysql://myhost.mydomain/mydb?zeroDateTimeBehavior=convertToNull

da notare il parametro zeroDateTimeBehavior=convertToNull
 

Nessun commento:

Posta un commento