Null Date di MySQL
Null Date di MySQL
Bila memiliki tipe data DATE di database MySQL, format standarnya adalah yyyy-MM-dd. Jadi, bila kita mau mengisi 17 Agustus 1945, kita lakukan seperti ini
INSERT INTO hari_besar_nasional (tanggal, keterangan)
VALUES ('1945-08-17', 'Hari Kemerdekaan RI');
Bila kita tidak mengisikan tanggal alias NULL, maka MySQL akan mengisi kolom tersebut dengan nilai 0000-00-00. Sayangnya, nilai ini tidak diterima dengan baik oleh driver JDBC MySQL.
Berikut contoh kode program dalam Java
String sql = "select * from hari_besar_nasional";
ResultSet rs = connection.createStatement().executeQuery(sql);
while(rs.next()){
System.out.println("Tanggal : "+rs.getDate("tanggal");
System.out.println("Keterangan : "+rs.getString("keterangan");
}
rs.close();
Jika ada data yang berisi 0000-00-00, maka akan terjadi exception sebagai berikut:
java.sql.SQLException: Cannot convert value ‘0000-00-00 00:00:00’
Masalah ini dijelaskan di dokumentasi MySQL ini.
Solusinya adalah mengganti parameter koneksi database, yang tadinya seperti ini :
jdbc:mysql://localhost/nama_database
menjadi seperti ini
jdbc:mysql://localhost/nama_database?zeroDateTimeBehavior=convertToNull