Mengambil data di Database dalam jangka waktu tertentu
Kali ini saya akan menunjukkan bagaimana cara mengambil data dari database berdasarkan kurun waktu tertentu.
Permasalahan ini saya hadapi ketika ingin menghitung pengunjung pustaka di e-campus.fkip.unja.ac.id/pustaka. Saya ingin melihat, berapa sih total kunjungan ke sistem dan rata-rata kunjangan per hari dan per bulan.
Untuk catatan, pada aplikasi ini setiap mahasiswa dan dosen yang mengunjungi pustaka diharuskan untuk mengisi buku tamu yang ada di sistem tersebut. Struktur database nya kira-kira seperti ini
| Name | Type |
|---|---|
| id | int |
| iduser | varchar |
| tanggal | timestamp |
Kemudian, kita definisikan jangka waktu yang akan kita ambil datanya. Disini saya akan mengambil dimulai dari empat bulan yang lalu sampai bulan yang lalu (totalnya 3 bulan). Jika bulan sekarang adalah bulan Oktober, maka data yang diambil adalah dari bulan Juli sampai September. Fungsinya yaitu:
$bulan_sekarang= date('Y-m');
$date = new DateTime($bulan_sekarang); //digunakan untuk mencari 1 bulan yang lalu
$date2 = new DateTime($bulan_sekarang); //digunakan untuk mencari 4 bulan yang lalu
$interval = new DateInterval('P4M'); //untuk mengambil interval waktu 4 bulan
$interval2 = new DateInterval('P1M'); //untuk mengambil interval waktu 1 bulan
$date->sub($interval);
$empat_bulan_lalu = $date->format('Y-m');
$date2->sub($interval2);
$satu_bulan_lalu = $date2->format('Y-m');
Output yang dihasilkan akan dalam bentuk TTTT-BB. Pada kasus sekarang, maka output dari nilai variabel tersebut yaitu:
$empat_bulan_lalu = "2016-07"; $satu_bulan_lalu = "2016-09";
Kemudian kita gunakan variabel tersebut di query sql untuk pemanggilan data.
$query = $this->db->query("select * from pengunjung where mid(tanggal, 1,7) >= '$empat_bulan_lalu' and mid(tanggal, 1,7) <= '$satu_bulan_lalu'");
Jika ditampilkan, maka query tersebut akan menampilkan daftar pengunjung dalam jangka waktu yang telah kita tentukan didalam query tersebut.




