January 20, 2010

MySQL - Selisih Tanggal

Perintah:

SELECT (date(sysdate())-date(waktu)) AS selisih FROM trx
berjalan dengan hasil yg sesuai harapan pada MySQL Windows, namun tidak bisa dijalankan di MySQL pada sistem operasi GNU/Linux.

Pada MySQL sistem operasi tersebut, nilai kalkulasi selisih tanggal selalu sama dengan nol, padahal untuk tanggal yang berbeda, seharusnya bernilai bukan nol.

Setelah berpusing-pusing ria dan membuka-buka MySQL 5.0 Reference, disertai dengan serangkaian trial and error. Akhirnya ketemu juga solusinya, yaitu mengubah metode date calculation mejadi sebagai berikut:
SELECT DATEDIFF(SYSDATE(),waktu) AS selisih FROM trx