Teradata - Tarih / Saat İşlevleri
Bu bölüm, Teradata'da bulunan tarih / saat işlevlerini tartışmaktadır.
Tarih Saklama
Tarihler, aşağıdaki formül kullanılarak dahili olarak tamsayı olarak saklanır.
((YEAR - 1900) * 10000) + (MONTH * 100) + DAY
Tarihlerin nasıl saklandığını kontrol etmek için aşağıdaki sorguyu kullanabilirsiniz.
SELECT CAST(CURRENT_DATE AS INTEGER);
Tarihler tamsayı olarak saklandığı için üzerlerinde bazı aritmetik işlemler gerçekleştirebilirsiniz. Teradata, bu işlemleri gerçekleştirmek için işlevler sağlar.
AYIKLA
EXTRACT işlevi, DATE değerinden gün, ay ve yıl bölümlerini çıkarır. Bu fonksiyon aynı zamanda TIME / TIMESTAMP değerinden saat, dakika ve saniyeyi çıkarmak için kullanılır.
Misal
Aşağıdaki örnekler, Tarih ve Zaman Damgası değerlerinden Yıl, Ay, Tarih, Saat, Dakika ve saniye değerlerinin nasıl çıkarılacağını gösterir.
SELECT EXTRACT(YEAR FROM CURRENT_DATE);
EXTRACT(YEAR FROM Date)
-----------------------
2016
SELECT EXTRACT(MONTH FROM CURRENT_DATE);
EXTRACT(MONTH FROM Date)
------------------------
1
SELECT EXTRACT(DAY FROM CURRENT_DATE);
EXTRACT(DAY FROM Date)
------------------------
1
SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP);
EXTRACT(HOUR FROM Current TimeStamp(6))
---------------------------------------
4
SELECT EXTRACT(MINUTE FROM CURRENT_TIMESTAMP);
EXTRACT(MINUTE FROM Current TimeStamp(6))
-----------------------------------------
54
SELECT EXTRACT(SECOND FROM CURRENT_TIMESTAMP);
EXTRACT(SECOND FROM Current TimeStamp(6))
-----------------------------------------
27.140000
ARALIK
Teradata, DATE ve TIME değerleri üzerinde aritmetik işlemler gerçekleştirmek için INTERVAL işlevi sağlar. İki tür INTERVAL işlevi vardır.
Yıl-Ay Aralığı
- YEAR
- YILDAN AYA
- MONTH
Gün-Saat Aralığı
- DAY
- GÜN-SAAT
- DAKİKA GÜN
- İKİNCİYE GÜN
- HOUR
- SAAT - DAKİKA
- SANİYE KADAR SAAT
- MINUTE
- İKİNCİYE DAKİKA
- SECOND
Misal
Aşağıdaki örnek, geçerli tarihe 3 yıl ekler.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03' YEAR;
Date (Date+ 3)
-------- ---------
16/01/01 19/01/01
Aşağıdaki örnek, geçerli tarihe 3 yıl ve 01 ay ekler.
SELECT CURRENT_DATE, CURRENT_DATE + INTERVAL '03-01' YEAR TO MONTH;
Date (Date+ 3-01)
-------- ------------
16/01/01 19/02/01
Aşağıdaki örnek, geçerli zaman damgasına 01 gün, 05 saat ve 10 dakika ekler.
SELECT CURRENT_TIMESTAMP,CURRENT_TIMESTAMP + INTERVAL '01 05:10' DAY TO MINUTE;
Current TimeStamp(6) (Current TimeStamp(6)+ 1 05:10)
-------------------------------- --------------------------------
2016-01-01 04:57:26.360000+00:00 2016-01-02 10:07:26.360000+00:00