Oracle'da DATEDIFF işlevi

Oracle kullanmam gerekiyor ancak DATEDIFF işlevi Oracle DB'de çalışmıyor.

Oracle'da aşağıdaki kod nasıl yazılır? INTERVAL veya TRUNC kullanan bazı örnekler gördüm.

SELECT DATEDIFF ('2000-01-01','2000-01-02') AS DateDiff;
Çözüm

Oracle'da, iki tarihi basitçe çıkarabilir ve gün cinsinden farkı elde edebilirsiniz. Ayrıca SQL Server ya da MySQL'den farklı olarak Oracle'da from cümlesi olmadan select deyimi gerçekleştiremeyeceğinizi unutmayın. Bunu aşmanın bir yolu, yerleşik kukla tablo dual kullanmaktır:

SELECT TO_DATE('2000-01-02', 'YYYY-MM-DD') -  
       TO_DATE('2000-01-01', 'YYYY-MM-DD') AS DateDiff
FROM   dual
Yorumlar (1)

Sadece iki tarihi çıkarın:

select date '2000-01-02' - date '2000-01-01' as dateDiff
from dual;

Sonuç, günler arasındaki fark olacaktır.

Daha fazla ayrıntı kılavuzda yer almaktadır:
https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements001.htm#i48042

Yorumlar (2)

İki tarihi basitçe çıkarabilirsiniz. Önce to_date kullanarak döküm yapmanız gerekir:

select to_date('2000-01-01', 'yyyy-MM-dd')
       - to_date('2000-01-02', 'yyyy-MM-dd')
       datediff
from   dual
;

Sonuç gün cinsindendir ve bu iki tarihin farkı -1dir (isterseniz iki tarihi değiştirebilirsiniz). Saat cinsinden olmasını isterseniz, sonucu 24 ile çarpmanız yeterlidir.

Yorumlar (1)