Welcome

Welcome, thanks to look my blog

Monday, 14 December 2015

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

Syntax :

DATE_ADD(date, INTERVAL expr unit)

Contoh :

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

Syntax :

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)

atau

ADDDATE(expr, days)

Contoh :
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

Syntax :
SUBDATE(date, INTERVAL expr unit)

atau

SUBDATE(expr, days)

Contoh :
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

Syntax :
SUBTIME(ekspresi_tanggal_waktu, ekspresi_waktu)

Contoh :

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

Penggunaan PERIOD_ADD

Syntax :
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://mysql.phi-integration.com/sql/fungsi-tanggal-dan-waktu/menambahkan-dan-mengurangi-waktu-di-mysql

No comments:

Post a Comment