![]() |
|
Takvim Tarihi/Saati İşlevleriTakvim tarihi/saati işlevleri tarih, saat ve zaman damgası ile ilgili veri tiplerindeki verileri kullanır. (Zaman damgası veri tipi tarih ve saat değerlerinin birleşimidir.) Tüm tarih işlevleri ISO 8601 uyumludur. Bu, özellikle Week_Of_Year ve Week_Of_Quarter gibi, yılın ilk haftasının bir Perşembe günü içeren ilk tam hafta olduğu işlevleri etkiler. Tarih işlevlerinin nasıl hesaplandığı ile ilgili detaylı bilgiler için ISO 8601 standardına bakın. Current_DateGünün tarihini döndürür. Tarih bilgisayar tarafından belirlenir. Bu değer bir tarih bileşeni içermez. Sözdizimi: CURRENT_DATE Current_TimeO andaki saati döndürür. Zaman bilgisayar tarafından belirlenir. Değer, tarih bileşeni içermez. Not: Bu işlev o andaki saati, raporun çalıştırıldığı saatten alır. Bu işlevin analiz konu alanında kullanılması raporun, performansı düşürecek şekilde önbellek kullanmasını önler. Sözdizimi: CURRENT_TIME (n) burada:
Current_TimeStampO andaki tarih/saat damgasını döndürür. Zaman damgası bilgisayar tarafından belirlenir. Not: Bu işlev o andaki saati, raporun çalıştırıldığı saatten alır. Bu işlevin analiz konu alanında kullanılması raporun, performansı düşürecek şekilde önbellek kullanmasını önler. Sözdizimi: CURRENT_TIMESTAMP (n) burada:
Day_Of_QuarterBelirtilen tarihin üç aylık dönemdeki kaçıncı gün olduğunu gösteren bir sayı (1-92) döndürür. Sözdizimi: DAY_OF_QUARTER (date_expression) burada:
DayNameBelirtilen bir tarih için, haftanın günü değerini (İngilizce) döndürür. Sözdizimi: DAYNAME (date_expression) burada:
DayOfMonthBelirtilen bir tarih için, ayın gününe karşılık gelen sayıyı döndürür. Sözdizimi: DAYOFMONTH (date_expression) burada:
DayOfWeekBelirtilen bir tarih için, haftanın gününe karşılık gelen, 1-7 arasında sayı döndürür. 1 sayısı Pazara, 7 sayısı Cumartesiye karşılık gelir. Sözdizimi: DAYOFWEEK (date_expression) burada:
DayOfYearBelirtilen bir tarih için, yılın gününe karşılık gelen bir sayı (1-366) döndürür. Sözdizimi: DAYOFYEAR (date_expression) burada:
SaatBelirtilen bir zaman için, saate karşılık gelen bir sayı (0-23) döndürür. Örneğin 0, 00:00 ve 23, 23:00 saatlerine karşılık gelir. Sözdizimi: HOUR (time_expression) burada:
DakikaBelirtilen bir zaman için, dakikaya karşılık gelen bir sayı (0-59) döndürür. Sözdizimi: MINUTE (time_expression) burada:
AyBelirtilen bir tarih için, aya karşılık gelen bir sayı (1-12) döndürür. Sözdizimi: MONTH (date_expression) burada:
Month_Of_QuarterBelirtilen bir tarih için, üç aylık dönemdeki aya karşılık gelen bir sayı (1-3) döndürür. Sözdizimi: MONTH_OF_QUARTER (date_expression) burada:
MonthNameBelirtilen bir tarih için, ay adını (İngilizce) döndürür. Sözdizimi: MONTHNAME (date_expression) burada:
NowO andaki zamandamgasını döndürür. NOW işlevi CURRENT_TIMESTAMP işlevine eşdeğerdir. Not: Bu işlev o andaki saati, raporun çalıştırıldığı saatten alır. Bu işlevin analiz konu alanında kullanılması raporun, performansı düşürecek şekilde önbellek kullanmasını önler. Sözdizimi: NOW () Quarter_Of_YearBelirtilen bir tarih için, yılın üç aylık dönemine karşılık gelen bir sayı (1-4) döndürür. Sözdizimi: QUARTER_OF_YEAR (date_expression) burada:
SecondBelirtilen bir zaman için, saniyeye karşılık gelen sayıyı (0-59) döndürür. Sözdizimi: SECOND (time_expression) burada:
TimestampAddTimestampAdd işlevi belirtilen zaman damgasına belirli sayıda aralık ekler. Tek zaman damgası döndürülür. Sözdizimi: TimestampAdd (interval, integer_expression, timestamp_expression) burada:
Bu işleve iletilen bir boş tamsayı ifadesi veya boş zaman damgası ifadesi boş sonuç değeri döndürür. En basit senaryoda, bu işlev sadece belirtilen tamsayı değerini (integer_expression), aralığa bağlı olarak zaman damgasının uygun bileşenine ekler. Hafta eklemek, yedi gün eklemeye; üç aylık dönem eklemek üç ay eklemeye dönüşür. Negatif tamsayı değeri bir çıkarma işlemi (zamanda geri gitme) ile sonuçlanır. Belirtilen bileşende taşma olması (örneğin 60 saniyeden, 24 saatten, on iki aydan vb. fazla) sonraki bileşene uygun miktar eklenmesini gerektirir. Örneğin, bir zaman damgasının gün bileşenine ekleme yapılırken, bu işlev taşmayı ele alır ve belirli bir aydaki gün sayısını gözönünde bulundurur (Şubat ayının 29 gün olduğu artık yıllar dahil). Bir zaman damgasının ay bileşenine ekleme yaparken, bu bileşen sonuç zaman damgasının, gün bileşeni için yeterli gün sayısına sahip olduğunu doğrular. Örneğin, 2000-05-31 için 1 ay eklenmesi 2000-06-31 olarak sonuçlanmaz, çünkü Haziran ayında 31 gün yoktur. Bu işlev gün bileşenini ayın son gününe indirger; bu örnekte, 2000-06-30. Bir zaman damgasında, ay bileşeni Şubat ve gün bileşeni 29 (yani, artık yıldaki bir Şubat ayının son günü) olan bir yıl bileşenine ekleme yapılırken benzer bir sorun ortaya çıkar. Sonuç zaman damgası bir artık yıla denk gelmezse, bu işlev gün bileşenini 28'e düşürür. Aşağıda TimestampAdd işlevinin örnekleri verilmiştir: Aşağıdaki kod örneği 2000-02-27 14:30:00 değerine 3 gün eklendiğindeki sonuç zaman damgasını ister. Şubat, 2000 artık yıl olduğundan bu, 2000-03-01 14:30:00 tek zaman damgasını döndürür. TimestampAdd(SQL_TSI_DAY, 3, TIMESTAMP‘2000-02-27 14:30:00’) Aşağıdaki kod örneği 1999-07-31 0:0:0 değerine 7 ay eklendiğindeki sonuç zaman damgasını ister. Bu, 2000-02-29 00:00:00 tek zaman damgasını döndürür. Şubat ayı kısa olduğu için gün bileşeninin 29'a düşürüldüğüne dikkat edin. TimestampAdd(SQL_TSI_MONTH, 7, TIMESTAMP‘1999-07-31 00:00:00’) Aşağıdaki kod örneği 31.07.2000 23:35:00 değerine 25 dakika eklendiğindeki sonuç zaman damgasını ister. Bu, 01.08.2000 00:00:00 tek zaman damgasını döndürür. Taşmanın ay bileşenine yayıldığına dikkat edin. TimestampAdd(SQL_TSI_MINUTE, 25, TIMESTAMP‘2000-07-31 23:35:00’) TimeStampDiffTimestampDiff işlevi iki zaman damgası arasında belirtilen toplam aralık sayısını döndürür. Sözdizimi: TimestampDiff (interval, timestamp_expression1, timestamp_expression2) burada:
Bu işleve iletilen bir boş zaman damgası ifade parametresi boş sonuç değeri döndürür. Bu işlev önce, belirtilen aralık parametresine karşılık gelen zaman damgası bileşenini belirler. Örneğin, SQL_TSI_DAY gün bileşenine, SQL_TSI_MONTH ay bileşenine karşılık gelir. Ardından işlev, her zaman damgasının toplam aralık sayısını hesaplamak için her iki zaman damgasında yüksek sıradaki bileşenlere bakar. Örneğin, belirtilen aralık ay bileşenine karşılık geliyorsa, işlev her zaman damgası için, ay bileşenini ve yıl bileşeninin on iki katını ekleyerek toplam ay sayısını hesaplar. Sonuç olarak, işlev ilk zaman damgasının toplam aralık sayısını ikinci zaman damgasının toplam aralık sayısından çıkarır. Günler arasındaki farkı hesaplarken bu fonksiyon her iki Zaman Damgası ifadesindeki saat değerlerini keser ve tarih değerlerini çıkarır. Haftalar arasındaki farkı hesaplarken, işlev günler arasındaki farkı hesaplar ve yuvarlama yapmadan önce yediye böler. Üç aylık dönemler arasındaki farkı hesaplarken, işlev aylar arasındaki farkı hesaplar ve yuvarlama yapmadan önce üçe böler. Yıllar arasındaki farkı hesaplarken bu fonksiyon aradaki farkı ay cinsinden hesaplar ve yuvarlama yapmadan önce on ikiye böler. TimestampDiff İşlevi ve Sonuçları ÖrneğiAşağıdaki kod örneği 1998-07-31 23:35:00 ve 2000-04-01 14:24:00 zaman damgaları arasındaki gün farkını sorar. 610 değerini döndürür. Artık yıl olan 2000'in, sonuca bir gün eklenmesine neden olduğuna dikkat edin. TimestampDIFF(SQL_TSI_DAY, TIMESTAMP‘1998-07-31 23:35:00’, TIMESTAMP‘2000-04-01 14:24:00’) Week_Of_QuarterBelirtilen tarihin üç aylık dönemdeki kaçıncı hafta olduğunu gösteren bir sayı (1-13) döndürür. Sözdizimi: WEEK_OF_QUARTER (date_expression) burada:
Week_Of_YearBelirtilen tarihin yılın kaçıncı haftası olduğunu gösteren bir sayı (1-53) döndürür. Sözdizimi: WEEK_OF_YEAR (date_expression) burada:
YılBelirtilen bir tarih için yılı döndürür. Sözdizimi: YEAR (date_expression) burada:
Örnek: YEAR (CURRENT_DATE) |
Eylül 2017'da Yayımlandı | Copyright © 2005, 2017, Oracle. Tüm hakları saklıdır. Legal Notices. |