Jumlah hari dalam bulan mysql

Posted: 25/06/2011 in Computer Art, SQL
Tags: SQL

Setelah mencari cara ndak nemu, lalu mencari jawaban dengan bantuan google, dan nemu :). Maksud judul tulisan ini begini, misalkan kita membuat program untuk persewaan gunting, lalu per-hari dihargai 1 juta rupiah. Kemudian, data yang di simpan dalam database kan berupa tanggal peminjaman dan tanggal pengembalian, nah, berdasarkan tanggal itu, kita bisa menghitung jumlah hari tanpa berpikir pusing ngoding jumpalitan segala macem pake strpos, strcat, substring, dan lain-lain.

Jadi, dengan memanfaatkan fungsi yang ada dalam MySQL (maaf, untuk database yang lain sama apa tidak, saya belum coba), yaitu DATEDIFF. Dengan fungsi tersebut, kita bisa langsung menghitung jumlah hari di antara dua buah tanggal (kenapa tanggal pake buah ya?). Struktur untuk fungsi datediff sendiri seperti ini:

DATEDIFF(date1,date2)

date1 = tanggal akhir, date2 = tanggal awal. Sehingga, paling tidak, perintah SQL yang digunakan yaitu seperti begini:

SQL : SELECT DATEDIFF('2011-06-23','2011-05-25')
//output: 
+------------------------------------------+
|SELECT DATEDIFF('2011-06-23','2011-05-25')|
+------------------------------------------+
|                                        29|
+------------------------------------------+

//atau begini:
SQL : SELECT DATEDIFF('2011-06-23','2011-05-25') AS telat
//output
+-----+
|telat|
+-----+
|   29|
+-----+

Semoga bermanfaat.

Jumlah hari dalam bulan mysql

Dengan PHP, Anda dapat mencari jumlah hari dalam bulan tertentu dengan mudah dan cepat. Hanya dengan menggunakan function khusus yang sudah disediakan oleh PHP, Anda akan dapatkan hasilnya.

Function yang dimaksud adalah  cal_days_in_month();

Bagaimana cara penggunaannya dan contoh pemakaiannya, simak artikel ini lebih lanjut.

Function ini memiliki sintaks sebagai berikut:

cal_days_in_month(x, y, z);

dengan x adalah jenis kalender yang diinginkan, y adalah bilangan yang menunjukkan bulan, dan z adalah tahun.  Untuk parameter x, disediakan 4 jenis kalender yang dapat digunakan, yaitu kalender Gregorius (CAL_GREGORIAN), kalender Julian (CAL_JULIAN), kalender yahudi (CAL_JEWISH), dan kalender Perancis (CAL_FRENCH). Nah.. biasanya, kalender yang sering dipakai di dunia adalah kalender Gregorian, seperti halnya di Indonesia. Sayang… untuk kalender Islam belum dibuat untuk mengisi parameter jenis kalender ini.

Sebagai contoh, berikut ini adalah script PHP untuk menampilkan jumlah hari pada bulan Pebruari tahun 1804.

Dari script di atas, Anda akan mendapatkan jumlah hari sebanyak 29 pada bulan Pebruari 1804.

Bagikan artikel ini jika bermanfaat !


Menu Utama

Konsep Umum

Lain-lain

Business Intelligence (BI)

Training BI & SQL

Jumlah hari dalam bulan mysql

Situs Terkait

Menambahkan dan Mengurangi Waktu di MySQL

Pendahuluan

Ada beberapa cara untuk menambahkan tanggal dan jam tertentu di MySQL, yaitu  :

  1. Menggunakan operator plus (+) dan  minus (-) diikuti keyword INTERVAL dan unit dari Interval.
  2. Menggunakan fungsi-fungsi berikut :
    • DATE_ADD, digunakan untuk menambahkan jumlah hari atau interval waktu pada tanggal tertentu.
    • DATE_SUB, digunakan untuk mengurangi interval waktu pada tanggal tertentu.
    • ADDDATE, digunakan untuk menambahkan jumlah hari atau interval waktu pada tanggal tertentu.
    • SUBDATE,digunakan untuk mengurangi jumlah hari atau interval waktu pada tanggal tertentu.
    • SUBTIME, digunakan untuk mengurangi dari dua ekspresi waktu (time atau datetime).
    • PERIOD_ADD, menambahkan jumlah bulan pada periode tertentu. Periode tersebut dalam format YYMM atau YYYYMM.

Bagian berikut di bawah menunjukkan contoh-contoh penggunaan dari operator dan fungsi tersebut di atas.

Menggunakan Operator Plus dan Minus

Contoh penggunaannya operator plus minus ( + / - ) adalah sebagai berikut :

SELECT '2010-01-01 00:00:00' + INTERVAL 1 DAY; -- Menambahkan 1 hari

SELECT '2010-01-01 00:00:00' - INTERVAL '30' MINUTE; -- Mengurangi 30 menit

SELECT '2010-01-01 00:00:00' - INTERVAL '1-3' YEAR_MONTH; -- Mengurangi 1 tahun dan 3 bulan

SELECT '2010-01-01' + INTERVAL '2' MONTH; -- Menambahkan 2 bulan

SELECT '2010-01-01' + INTERVAL '2-6' YEAR_MONTH; -- Menambahkan 2 tahun dan 6 bulan

SELECT '2010-01-01' - INTERVAL '1-3' YEAR_MONTH; -- Mengurangi 1 tahun dan 3 bulan

-- Menambahkan interval 3 tahun pada field tgl_transaksi dari database PHI-Minimart

SELECT tgl_transaksi + INTERVAL '3' YEAR from tr_penjualan;

Untuk rincian mengenai INTERVAL, silahkan klik halaman wiki pada link ini. 

Penggunaan DATE_ADD

DATE_ADD(date, INTERVAL expr unit)


SELECT DATE_ADD('2010-01-01', INTERVAL 3 MINUTE); -- menambahkan 3 minute
SELECT DATE_ADD('2010-01-01 00:00:00', INTERVAL '2-6' YEAR_MONTH); -- menambahkan 2 tahun 6 bulan

-- Menambahkan 12 jam pada field tgl_transaksi pada table tr_penjualan di database PHI-Minimart
SELECT DATE_ADD(tgl_transaksi, INTERVAL 12 HOUR) FROM tr_penjualan;

Penggunaan DATE_SUB

DATE_SUB(date, INTERVAL expr unit)


Contoh :

SELECT DATE_SUB('2010-01-01', INTERVAL 3 MINUTE); -- mengurangi 3 minute
SELECT DATE_SUB('2010-01-01 00:00:00', INTERVAL '2-2' YEAR_MONTH); -- mengurangi 2 tahun 2 bulan

-- Mengurangi 12 jam pada field tgl_transaksi pada table tr_penjualan di database PHI-Minimart
SELECT DATE_SUB(tgl_transaksi, INTERVAL 12 HOUR) FROM tr_penjualan;

Penggunaan ADDDATE

Ada 2 jenis syntax yang berlaku untuk fungsi ADDDATE ini, yaitu :

ADDDATE(date, INTERVAL expr unit)

SELECT ADDDATE('2010-01-01', INTERVAL 3 MINUTE); -- menambahkan 3 minute
SELECT ADDDATE('2010-01-01 00:00:00', INTERVAL '2-2' YEAR_MONTH); -- menambahkan 2 tahun 2 bulan
SELECT ADDDATE('2010-01-01 00:00:00', 3); -- menambahkan 3 hari

-- Menambahkan 12 jam pada field tgl_transaksi pada table tr_penjualan di database PHI-Minimart
SELECT ADDDATE(tgl_transaksi, INTERVAL 12 HOUR) FROM tr_penjualan;

-- Menambahkan 7 hari pada field tgl_transaksi pada table tr_penjualan di database PHI-Minimart
SELECT ADDDATE(tgl_transaksi, 7) FROM tr_penjualan;

Penggunaan SUBDATE

SUBDATE(date, INTERVAL expr unit)

atau

SUBDATE(expr, days)


SELECT SUBDATE('2010-01-01', INTERVAL 3 MINUTE); -- mengurangi  3 minute
SELECT SUBDATE('2010-01-01 00:00:00', INTERVAL '2-2' YEAR_MONTH); -- mengurangi  2 tahun 2 bulan
SELECT SUBDATE('2010-01-01 00:00:00', 3); -- mengurangi 3 hari

-- Mengurangi 12 jam pada field tgl_transaksi pada table tr_penjualan di database PHI-Minimart
SELECT SUBDATE(tgl_transaksi, INTERVAL 12 HOUR) FROM tr_penjualan;

-- Mengurangi 7 hari pada field tgl_transaksi pada table tr_penjualan di database PHI-Minimart
SELECT SUBDATE(tgl_transaksi, 7) FROM tr_penjualan;

Penggunaan SUBTIME

SUBTIME(ekspresi_tanggal_waktu, ekspresi_waktu)

SELECT SUBTIME('2010-01-01 00:00:00', '11:00:00'); -- mengurangi 12 jam
SELECT SUBTIME('2010-01-01 12:00:00', '1'); -- mengurangi 1 detik
SELECT SUBTIME('2010-01-01 12:00:00', '1:0:0.000000'); -- mengurangi 1 jam
SELECT SUBTIME('2010-01-01 12:00:00', '1:1'); -- mengurangi 1 jam dan 1 menit
SELECT SUBTIME('2010-01-01 12:00:00', '1 1:1'); -- mengurangi 1 hari, 1 jam dan 1 menit

Penggunaan PERIOD_ADD

PERIOD_ADD(year_month_period, months)

Keterangan : 

  • year_month_period adalah dalam format YYMM atau YYYYMM.

Contoh :

SELECT PERIOD_ADD('201001',3); -- Menambahkan 3 bulan pada Januari 2010
SELECT PERIOD_ADD('1001',3); -- Menambahkan 3 bulan pada Januari 2010
SELECT PERIOD_ADD('201001',-3); -- Mengurangi 3 bulan pada Januari 2010

Sumber Referensi

  • http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html