Get current week number for current month in Postgre

Cara mendapatkan minggu / week dari suatu bulan.

Jika kita query extract(week from current_date) saja maka hasilnya adalah week dalam 1 year yaitu 1-52. Seringnya user bingung saat ingin mendapatkan week dengan angka 1-5 saja khusus untuk bulan itu saja, misalnya juli minggu ke-1. Nah, ini query untuk mendapatkan angka week 1-5 saja dalam bulan tertentu:

SELECT extract(week from current_date) - extract(week from date_trunc('month', current_date)) + 1

Logic dari query tsb adalah: weekyear dari current date – weekyear dari tgl1 di current month + 1,

Kenapa pake +1, karena kalo 2014-01-01, weekyear dari current date – weekyear dari tgl1 di current month + 1 = (1-1+1)

Jika muncul pertanyaan date_trunc itu fungsinya apa?

Fungsi nya adalah untuk men-truncate presisi/ketilitian yang tidak diperlukan, jika perintahnya date_trunc(‘month’, date) maka, ketilitian dari tanggal, jam, menit dst, ditruncate.

 

Contoh  date_trunc(‘month’, date(‘2014-11-28’))  akan diubah menjadi ‘2014-11-01’

 

Sumber: http://stackoverflow.com/questions/18399639/current-week-number-for-current-month

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s