Null Date di MySQL

Posted on March 4th, 2009 | by endy |

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
  1. 5 Responses to “Null Date di MySQL”

  2. By WishKnew on Mar 4, 2009 | Reply

    Wah lucu juga ya, fitur di query, work aroundnya di settingan koneksi ke database. Kalau banyak fitur yang kayak gini apa gak ribet ya di connection stringnya?

  3. By rohman on Mar 4, 2009 | Reply

    waah terima kasih atas Artikelnya pak endy

    akhirnya jalan Juga

    Terima Kasih pak Endy

    —salam—

    rohman

  4. By Martinus Ady H on Mar 12, 2009 | Reply

    Wah makasih pak, saya jg kena masalah yg sama nich :”>

  5. By handendari on Mar 27, 2009 | Reply

    kalo saya langsung saya isi dengan nilai null juga bisa kok pak…

Post a Comment