Fun kk. BOFF!

Artikel ini hanya mau share ttg bagaimana kita berinteraksi dengan tipe data Date & Time in DB2. Is it simple? Yes it is.

Untuk mendapatkan current date, time, atau timestamp melalui SQL dari register DB2:

SELECT current date FROM sysibm.sysdummy1
SELECT current time FROM sysibm.sysdummy1
SELECT current timestamp FROM sysibm.sysdummy1

Jadi, sysibm.sysdummy1 merupakan table memory yang dapat digunakan untuk mendapatkan nilai-nilai yg ada di register DB2. Kita juga bisa mengakses tabel memori ini melalui DB2 Command Line Processor (CLP), tinggal kita gunakan keyword VALUES. Contoh:

VALUES current date
VALUES current time
VALUES current timestamp

Untuk mendapatkan current timestamp GMT/CUT, ganti aja jadi begini:

current time - current timezone
current timestamp - current timezone

Lalu untuk mendapatkan tahun, bulan, tanggal, jam, menit, detik dan milidetik dari suatu nilai timestamp, berikut ini fungsi-fungsinya:

YEAR (current timestamp)
MONTH (current timestamp)
DAY (current timestamp)
HOUR (current timestamp)
MINUTE (current timestamp)
SECOND (current timestamp)
MICROSECOND (current timestamp)

Sedangkan untuk memperoleh Tanggal (bertipe Date) atau Jam (bertipe Time):

DATE (current timestamp)
TIME (current timestamp

Bahkan, mau dilakukan proses kalkulasi seperti ditambah 1 tahun, 2 bulan, dst juga bisa:

current date + 1 YEAR
current date + 3 YEARS + 2 MONTHS + 15 DAYS
current time + 5 HOURS - 3 MINUTES + 10 SECONDS

Misal kita mau ngitung ada jarak berapa hari antara hari ini sampai 1 Januari 2012, tinggal dikurangin gini aja:

days (current date) - days (date('2012-01-01'))

Dan kalo misal pengen dapetin current timestamp tapi microsecond nya direset ke nilai 0:

CURRENT TIMESTAMP - MICROSECOND (current timestamp) MICROSECONDS

Sekarang kalau kita mau concat date or time, kita harus convert dulu ke string dulu. Tinggal pake fungsi char() aja:

char(current date)
char(current time)
char(current time + 12 hours)
char(current date + 1 days)

Dan terakhir, untuk menkonversi string ke Date or Time, kita bs pake fungsi TIMESTAMP, DATE, atau TIME. Contoh:

TIMESTAMP ('2002-10-20-12.00.00.000000')
TIMESTAMP ('2002-10-20 12:00:00')
DATE ('2002-10-20')
DATE ('10/20/2002')
TIME ('12:00:00')
TIME ('12.00.00')

Fungsi-fungsi di atas dapat menggunakan format lain. Yang di atas cuma cuma contoh aja.

Sumber: http://www.ibm.com/developerworks/data/library/techarticle/0211yip/0211yip3.html
Yeah, bisa dibilang translate dari sana.:mrgreen:
Tapi setidaknya gw nulis pake bahasa gw sendiri, dan contoh-contoh di atas udah gw pelajari dan semuanya jalan😛