Oracle

ORACLE PL/SQL Tarih Saat Fonksiyonları (ORACLE PL/SQL Date Time Functions)

ORACLE PL/SQL Tarih Saat Fonksiyonları (ORACLE PL/SQL Date Time Functions)

Sistem tarih, saati:

SELECT SYSDATE FROM dual;

Sistem Saat dilimi ve geçerli tarih:

SELECT sessiontimezone, current_date FROM DUAL;

Saat dilimini değiştirmek:

ALTER SESSION SET TIME_ZONE = ‘-5:0’;

Tarihe gün eklemek:

SELECT SYSDATE+14 FROM dual; --(14 gün sonraki tarihi döndürür.)

Sistem tarihinin stringe çevrilmiş halini döndürür:

SELECT TO_CHAR(SYSDATE,’DD-MON-YYYY HH:MI:SS’) FROM dual;

Verilen tarihin saat kısmını döndürür:

SELECT TO_CHAR(VTARIH,’HH24:MI:SS’) FROM dual;

Verilen tarihin gün/ay/yıl kısmını döndürür:

SELECT TO_CHAR(VTARIH,’DD.MM.YYYY’) FROM dual; --(string değer döndürür)
SELECT TRUNC(VTARIH) FROM dual; --(tarih formatında değer döndürür)

Verilen tarihin yıl kısmını string olarak döndürür:

SELECT TO_CHAR(VTARIH,’YYYY’) FROM dual;

Verilen tarihin o yıldaki gününü döndürür (1-365):

SELECT TO_CHAR(VTARIH,’DDD’) FROM dual;

Yılın çeyreğini döndürür (1,2,3,4 çeyrek):

SELECT TO_CHAR(VTARIH,’Q’) FROM dual;

Verilen tarihin ayını string olarak döndürür:

SELECT TO_CHAR(VTARIH,’MM’) FROM dual;

Verilen tarihin gününü string olarak döndürür:

SELECT TO_CHAR(VTARIH,’DD’) FROM dual;

Verilen tarihin ay adını döndürür:

SELECT TO_CHAR(VTARIH,’MONTH’) FROM dual;<br>SELECT TO_CHAR(VTARIH,’MON’) FROM dual;

Verilen tarihin gün adını döndürür:

SELECT TO_CHAR(VTARIH,’DAY’) FROM dual;

Verilen tarihe ay eklemek ya da eksiltmek için:

SELECT ADD_MONTHS(VTARIH,1) FROM dual;<br>SELECT ADD_MONTHS(VTARIH,-4) FROM dual;

Verilen tarihin ayın ilk gününü döndürür:

SELECT TO_CHAR(TRUNC(VTARIH,’MM’),’DD.MM.YYYY’) FROM DUAL;

Verilen tarihin ayın son gününü döndürür:

SELECT last_day(VTARIH) FROM dual;

Bir sonraki X (örneğin CUMA) gününün tarihini döndürür:

SELECT NEXT_DAY(SYSDATE, ‘CUMA’) FROM DUAL;

Verilen stringi tarihe çevirir:

SELECT TO_DATE(‘21.10.2010′,’DD.MM.YYYY’) FROM dual;

Verilen tarihin yıl hafta numarasını döndürür(1-52):

SELECT TO_CHAR(VTARIH,’IW’) FROM dual;

İki tarih arasındaki ay farkını döndürür:

SELECT MONTHS_BETWEEN(VTARIH2, VTARIH1) FROM DUAL;

Verilen tarihler arasındaki en büyüğünü döndürür:

SELECT GREATEST(SYSDATE, SYSDATE+10, SYSDATE+190) FROM DUAL;

Verilen tarihler arasındaki en küçüğünü döndürür:

SELECT LEAST(SYSDATE, SYSDATE-10, SYSDATE+190) FROM DUAL;
You can share and save this page with:
Tags: , , , , , , , , , , , , ,

One Comment

  1. hocam merhaba,

    Elimde hisse senedi alım veya satım yapan müşteri listesi var. Burada çeşitli eşik değerleri kullanarak bu eşik değerlerine takılan müşterilere ulaşmak istiyorum. Misal aylık 200 haftalık 50 gnlük 25 ve saatlik de 10 ve üzeri işlem yapan müşterilere ulaşmak istiyorum 1 aylık periyotta.
    Ben şubat 2020 için aylık 200 haftalık 50 ve günlük 25 üzeri işlem yapan müşterilere ulaşıyorum fakat saatlik 10 ve üeri işlem yapanlara ulaşamıyorum.
    Yani bu senaryoyu kurgulayamadım. Şöyleki müşteri 13:14 de bir işlem yapmış ve 14:14 arasında 10 ve üzeri işlem yapmış ise bu kayıtları getirsin istiyorum. fakat buna ulaşamadım.
    Senaryoya ait sql yazdığım senaryo aşağıda ama bu senaryo bana 1 saat içerisinde 10 ve üzeri işlem yapanları vermedi. konu eğer excel olmadığı için kilitlenir ise özelden de yazarsanız sevinirm.
    Şimdiden teşekkür ederim.

    SELECT M1.MKY_MUS_MBB_NO,
    E1.HIS_ORD_KAYIT_TARIHI,
    E1.HIS_ORD_KAYIT_ZAMANI

    FROM pods.MKY_TMUSTERI M1,
    pods.HIS_THIS_GNX_EMIRLER E1,
    pods.YTR_THESAP_HESAP,
    pods.MBB_TMUSTERI
    WHERE E1.HIS_ORD_YATIRIM_HESAPNO = pods.YTR_THESAP_HESAP.YTR_HHS_HESAPNO
    AND pods.YTR_THESAP_HESAP.YTR_HHS_YATIRIM_HESAPNO = M1.MKY_MUS_KODU
    AND pods.MBB_TMUSTERI.MBB_NO_GER = M1.MKY_MUS_MBB_NO
    AND pods.YTR_THESAP_HESAP.YTR_HHS_DURUM = ‘A’
    AND M1.MKY_MUS_HSS_GST = ‘E’
    AND pods.MBB_TMUSTERI.MBB_MENSUP_KODU = 1
    AND E1.HIS_ORD_KAYIT_TARIHI BETWEEN ‘03.02.2020’ AND ‘28.02.2020’
    AND E1.HIS_ORD_KAYIT_ZAMANI
    BETWEEN ’09:00:00′ AND ’18:00:00′

    AND ( SELECT COUNT(*)
    FROM PODS.HIS_THIS_GNX_EMIRLER E2
    , PODS.MKY_TMUSTERI M2
    , PODS.YTR_THESAP_HESAP
    , PODS.MBB_TMUSTERI
    WHERE M1.MKY_MUS_MBB_NO = M2.MKY_MUS_MBB_NO
    AND YTR_HHS_YATIRIM_HESAPNO = M2.MKY_MUS_KODU
    AND MBB_NO_GER = M2.MKY_MUS_MBB_NO
    AND E2.HIS_ORD_YATIRIM_HESAPNO
    = YTR_HHS_HESAPNO
    AND YTR_HHS_DURUM = ‘A’
    AND M2.MKY_MUS_HSS_GST = ‘E’
    AND MBB_MENSUP_KODU = 1
    AND E1.HIS_ORD_KAYIT_TARIHI = E2.HIS_ORD_KAYIT_TARIHI
    AND E2.HIS_ORD_KAYIT_ZAMANI BETWEEN ’09:00:00′ AND ’18:00:00′

    AND TO_DATE(E2.HIS_ORD_KAYIT_TARIHI || ‘ ‘ ||E2.HIS_ORD_KAYIT_ZAMANI,’dd/mm/yyyy hh24:mi:ss’) BETWEEN
    TO_DATE(E1.HIS_ORD_KAYIT_TARIHI || ‘ ‘ ||E1.HIS_ORD_KAYIT_ZAMANI,’dd/mm/yyyy hh24:mi:ss’) AND
    TO_DATE(E1.HIS_ORD_KAYIT_TARIHI || ‘ ‘ ||E1.HIS_ORD_KAYIT_ZAMANI,’dd/mm/yyyy hh24:mi:ss’) + 1/24

    )
    >= 10
    ;

Leave a Reply

Your email address will not be published. Required fields are marked *

*