Catatan Seorang Prajurit Kecil

Ikon

biarlah semua itu berjalan sesuai "skenario" NYA – jika kau telusuri, semua logika itu akan kau temukan

Mengurangi Timestamp pada PostgreSQL 8.3


Berikut ini merupakan catatan kecil saya ketika melakukan pengerjaan project yang berkaitan dengan pengurangan waktu.

Salah satu tipe data yang terdapat pada PostgreSQL 8.3 adalah TIMESTAMP yaitu tipe data yang dapat menampung tanggal dan waktu. Jika kita menggunakan default sebuah field yang bertipe TIMESTAMP dengan fungsi now(), maka kita akan mendapatkan field tersebut berisi: 29/11/2010 23:05:54 yang menyatakan tanggal 29 November 2010 pada jam 11 malam lebih 5 menit 54 detik.

Jika kita ingin melakukan operasi pengurangan pada 2 field dengan tipe TIMESTAMP, maka kita bisa langsung mengurangkannya dengan menggunakan DML, seperti contoh berikut:

SELECT now() – (CAST(‘2010-12-09 12:20:54’ AS TIMESTAMP)

Yang berarti waktu sekarang dikurangi dengan tanggal 09 bulan Desember tahun 2010 jam 12 lebih 20 menit 54 detik. Operasi ini akan menghasilkan tipe data INTERVAL dengan format:

[@] quantity unit [quantity unit…] [direction]

Quantity menunjukan jumlah dalam bilangan numeric sedangkan unit menunjukan satuan yang menjelaskan quantity, yang berupa: microsecond, millisecond, second, minute, hour, day, week, year, decide, century atau millennium. (untuk lebih jelas mengenai tipe data INTERVAL bisa dilihat pada manual PostgreSQL 8.3)

Kembali ke DML yang sudah didefinisikan diatas, jika dieksekusi, DML tersebut akan menghasilkan INTERVAL seperti berikut:

1 day 01:16:44.599

Yang menandakan selisih waktu sekarang dengan waktu yang dikurangi tersebut sebanyak 1 hari 1 jam 16 menit 44, 599 detik. Bagaimana jika kita hanya ingin mengambil sebagian dari hasil tersebut, misalnya hari? Untuk itu kita gunakan fungsi EXTRACT yang terdapat pada PostgreSQL 8.3, sehingga kita bisa melakukan modifikasi DML diatas menjadi:

SELECT EXTRACT (DAY FROM now() – CAST(‘1900-10-6 16:25:38.495-08’ AS “timestamp”))

Untuk mengambil satuan lainnya kita cukup mengganti EXTRACT (DAY, menjadi EXTRACT(HOUR, MINUTE dan lain sebagainya (lihat manual PostgreSQL 8.3 untuk lebih jelasnya)

 

Filed under: Database and DBMS, ,

2 Responses

  1. greenyazzahra mengatakan:

    Halo halo kak zul..
    berkunjung nieh..mudah2an tidak lupa dgn tetanggamu ini🙂

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: