Hurriyet

21 Haziran 2012 Perşembe

"Date" Yönetimi


Oracle'da date zaman zaman karıştırılabilen biraz kompleks bir yapıdır. Bunu çözmenin en kolay yolu hepsini detaylı bir şekilde yazıp görmektir. Hepsini incelersek:

Current_date : date tipindedir. Session zamanını gösterir.
Current_timestamp: timestamp with time zone tipindedir.Session zamanını gösterir.
Localtimestamp: timestamp tipindedir. Session zamanını ve tarihini gösterir.
DBtimezone : Veritabanının bulunduğu server'ın zamanını gösterir.

-Mevcut tarih durumunu nasıl görebiliriz?

Select sysdate from dual;

select snap_id, begin_interval_time, end_interval_time from dba_hist_snapshot where  begin_interval_time> sysdate-(2/24) order by 1;
#Son 2 saat içinde alınan snapshotlar. Sysdate'den saat yukarıdaki gibi çıkartılır.



-Mevcut tarih formatını nasıl değiştirebiliriz? 


Alter session set nls_date_format ='DD-MON-YYYY HH24:MI:SS';

-Yukarıda belirttiğimiz tipler tam olarak neyi simgeliyor?

Timestamp --> Yıl , ay, gün, saat, dakika, saniye ve saliseleri gösterir.
Timestamp with time zone --> Yıl , ay, gün, saat, dakika, saniye ve saliseleri gösterir. Ayrıca bulunan zaman bölgesinin saatini ,dakikasını ve bölgesini gösterir.

 -Başka hangi zaman tipleri bulunmaktadır?

interval year to month -->Yıl , ay
interval day to second -->Gün, saat, dakika, saniye

  -Hangi zamanla ilgili fonksiyonlar bulunmaktadır?

İlk fonksiyonumuz "extract "'dır. Bu fonksiyonda herhangi bir zaman tipli kolon veya veri tipli bir değerden değişken çıkartabiliriz.

select extract(month from hire_date) from employees;

İkinci göstereceğimiz fonksiyon ise "to_timestamp"'dir. Bu da bizim belirleyeceğimiz bir zaman bilgisini veri tipine çevirmemizi sağlar.

Select to_timestamp('2012-06-18 11:00:00','YYYY-MON-DD HH:MI:SS') from dual;

Diğer 2 fonksiyon ise to_yminterval ve to_dsinterval 'dır. Bunlar içlerine konan bir karakter dizisini ilk fonksiyonda interval year to month tipine , diğerinde ise interval day to second tipine dönüştürürler.


Hiç yorum yok:

Yorum Gönder