snippetjournal

– notes, snippet codes, and my journal

Trivial Date Problem 1 (postgres)

leave a comment »

Noted :

Mencari Tanggal antara tanggal satu dengan lain nya (between)

tipe data pada kolom yang akan menjadi acuan adalah timestamp. beberapa cara pengambilan data nya dengan SQL


select * from table c where c.create_Time >= '2013-06-08'::date and c.create_Time <= '2013-06-11'::date

select c.* from table c where (c.create_Time, c.create_Time) OVERLAPS ('2013-06-08'::DATE, '2013-06-09'::DATE)

select c.* from table c where c.create_Time between '2013-06-08' and '2013-06-09'

select * from table c where c.create_Time >= '2013-06-08 00:00:00.000' and c.create_Time <= '2013-06-10 23:59:59.999'

select * from table c where c.create_Time >= '2013-06-08 00:00:00' and c.create_Time <= '2013-06-10 23:59:59'

Menggunakan cara lain, dengan mengakali koding java dengan menggunakan SimpleDateFormat  :

note: snippet ini bukan best practice dari penggunaan date dan timestamp


Date endDate = new Date();
 Date startDate = new Date();

if( form.getStartDate() != null && !form.getStartDate().equals("") ){
 startDate = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss.SSS", Locale.ENGLISH).parse(form.getStartDate().concat(" 00:00:00.000"));
 }

if( form.getEndDate() != null && !form.getEndDate().equals("") ){
 endDate = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss.SSS", Locale.ENGLISH).parse(form.getEndDate().concat(" 23:59:59.999"));
 }

Convert Date to Timestamp

Catatan : dimungkinkan untuk mengubah date menjadi timestamp dengan mempertahankan format yang sudah di tentukan. lakukan seperti ini :


Timestamp time = new Timestamp(startDate.getTime());

Tanggal dengan Calendar

Dalam melakukan perubahan tipe data Date juga disarankan penggunaan Calendar, karena banyak method dari Date yang sudah depreceated. berikut snippet codes nya :

Calendar calendarStart = Calendar.getInstance();
 calendarStart.setTime(enrollmentReportForm.getStartDt());
 calendarStart.set(Calendar.HOUR, 00);
 calendarStart.set(Calendar.MINUTE, 00);
 calendarStart.set(Calendar.SECOND, 00);
 calendarStart.set(Calendar.MILLISECOND, 00);
 startDate = calendarStart.getTime();

 Calendar calendarEnd = Calendar.getInstance();
 calendarEnd.setTime(enrollmentReportForm.getEndDt());
 calendarEnd.set(Calendar.HOUR, 23);
 calendarEnd.set(Calendar.MINUTE, 59);
 calendarEnd.set(Calendar.SECOND, 59);
 calendarEnd.set(Calendar.MILLISECOND, 59);
 endDate = calendarEnd.getTime();

catatan :
pada saat inisialisasi jam (HOUR) pada instance calendar kode di atas menggunakan “Calendar.HOUR”, ini akan menghasilkan nilai jam berupa system jam 12 hour.  Jika ingin menggunakan system jam dengan 24 hour bisa menggunakan “Calendar.HOUR_OF_DAY”

 

Timestamp dan Calendar dalam SimpleDateFormat

Beberapa contoh di bawah ini beberapa type data yang merepresentasikan tanggal dan dilakukan format date, dengan simple date format.

Calendar calendar = Calendar.getInstance();
 java.sql.Timestamp timestamp = new java.sql.Timestamp(System.currentTimeMillis());

 SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy");

 System.out.println(sdf.format(calendar.getTime()));
 System.out.println(sdf.format(timestamp.getDate()));

Written by snippetjournal

June 11, 2013 at 11:25 am

Posted in Programming

Tagged with , , , ,

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

%d bloggers like this: