Emrah AÇIKGÖZ'ün Kişisel Sahifesi.

Sql’de önceki/sonraki ayın ilk ve son gününü bulma

  • 4 yıl önce, Emrah tarafından yazılmıştır.
  • 1 Yorum
  • Oracle

Merhaba,

Blog’a gelen ihtiyaç yorumu sonrası ihtiyacı olanların kullanması için gerekli olan query’i ekliyorum.

Oracle Sql’de mevcut aydan sonraki ayın veya önceki ayın ilk gün ve sonuncu gününü bulmak için aşağıdaki komutları kullanabilirsiniz.

Faydalı olması dileği ile…

SELECT TO_DATE(0||1||TO_CHAR(ADD_MONTHS(SYSDATE,-1),’mmyyyy’),’ddmmyyyy’)AS ayin_ilki , (LAST_DAY(ADD_MONTHS(SYSDATE,-1))) AS ayin_sonu FROM DUAL

SELECT TO_DATE(0||1||TO_CHAR(ADD_MONTHS(SYSDATE,+1),’mmyyyy’),’ddmmyyyy’)AS ayin_ilki , (LAST_DAY(ADD_MONTHS(SYSDATE,+1))) AS ayin_sonu FROM DUAL

Oracle tarih fonksiyonları(sysdate)

Sistemin o andaki tarih ve saat bilgisini verir.

select sysdate from dual; SONUÇ : 16-MAY-2013

2.NEXT_DAY(tarih,ifade) Kullanımı

Verilmiş olan “tarih”e bağlı olarak “ifade” yer alan gün bilgisinin eklenerek hangi tarih olduğunun bilgisini verir.

Aşağıdaki örnekte Tarih bölümüne 16-May-2013 tarihini, İfade bölümüne Sunday(Pazar) gününü yazarsak, 16 Mayıs 2013 tarihinden sonraki ilk pazar günü hangi tarihe geldiğini verir.

select NEXT_DAY(’16-May-2013′,’SUNDAY’) “NEXT DAY” from dual;  SONUÇ : 19-MAY-2013

 3.LAST_DAY(tarih) Kullanımı

Verilen “tarih” bilgisinin ait olduğu ayın son gününü verir.

select last_day(’15-JUN-2013′) from dual;   SONUÇ : 30-JUN-2013

4.ADD_MONTHS(tarih,sayı) Kullanımı

Verilen “tarih” bilgisine “sayı” ekleyerek hangi ayın hangi günü olduğu bilgisini verir

Aşağıkaki örnekte 16-May-2013 tarihine 5 ay ilerisi hangi güne geldiğini öğrenmiş oluruz.

select add_months(’16-May-2013′,5) from dual;  SONUÇ : 16-OCT-2013

5.TRUNC(tarih,format) Kullanımı 
Bu fonkisyon aşağıdaki tabloda gösterilen “format” şekillerine göre verilmiş olan “tarih” bilgisini dönüştürür.

“tarih” bilgisi o anki sistem tarihi (16/05/2013) olarak kabul edilirse ;

SELECT trunc(sysdate,’YYYY’) from dual; -Girilen tarihe göre yılın ilk gününü verir.
SELECT trunc(sysdate,’Q’) from dual; -Girilen tarihe göre en yakın çeyrek ayın ilk gününü verir
SELECT trunc(sysdate,’MON’) from dual; -Girilen tarihin ait olduğu ayın ilk gününü verir.
 SELECT trunc(sysdate,’DY’) from dual; -Girilen tarihin ait olduğu haftanın Pazar gününün tarihini verir.
 SELECT trunc(sysdate,’W’) from dual; -Girilen tarihe göre önceki haftanın Perşembe günün tarihini verir.