Yazdır      Çevrimiçi Yardımın PDF Sürümünü Aç


Önceki Konu

Sonraki Konu

Takvim Tarihi/Saati İşlevleri

Takvim 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_Date

Gü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_Time

O 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:

n

Kesirli saniyenin görüntülenmesi için hassasiyet basamak sayısını gösteren bir tamsayı. Bu bağımsız değişken isteğe bağlıdır; hiçbir bağımsız değişken belirtilmediğinde işlev hassasiyet öndeğerini döndürür.

Current_TimeStamp

O 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:

n

Kesirli saniyenin görüntülenmesi için hassasiyet basamak sayısını gösteren bir tamsayı. Bu bağımsız değişken isteğe bağlıdır; hiçbir bağımsız değişken belirtilmediğinde işlev hassasiyet öndeğerini döndürür.

Day_Of_Quarter

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

DayName

Belirtilen bir tarih için, haftanın günü değerini (İngilizce) döndürür.

Sözdizimi:

DAYNAME (date_expression)

burada:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

DayOfMonth

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

DayOfWeek

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

DayOfYear

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

Saat

Belirtilen 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:

time_expression

Bir saate karşılık gelen herhangi bir ifade.

Dakika

Belirtilen bir zaman için, dakikaya karşılık gelen bir sayı (0-59) döndürür.

Sözdizimi:

MINUTE (time_expression)

burada:

time_expression

Bir saate karşılık gelen herhangi bir ifade.

Ay

Belirtilen bir tarih için, aya karşılık gelen bir sayı (1-12) döndürür.

Sözdizimi:

MONTH (date_expression)

burada:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

Month_Of_Quarter

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

MonthName

Belirtilen bir tarih için, ay adını (İngilizce) döndürür.

Sözdizimi:

MONTHNAME (date_expression)

burada:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

Now

O 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_Year

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

Second

Belirtilen bir zaman için, saniyeye karşılık gelen sayıyı (0-59) döndürür.

Sözdizimi:

SECOND (time_expression)

burada:

time_expression

Bir saate karşılık gelen herhangi bir ifade.

TimestampAdd

TimestampAdd 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:

interval

Belirtilen aralık. Geçerli değerler şunlardır:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

integer_expression

Bir tamsayıya karşılık gelen herhangi bir ifade. Bu, eklenecek aralık sayısıdır.

timestamp_expression

Zaman damgası bir hesaplamada temel olarak kullanılır.

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’)

TimeStampDiff

TimestampDiff 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:

interval

Belirtilen aralık. Geçerli değerler şunlardır:

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

timestamp_expression1

İkinci zaman damgasından çıkarılacak zaman damgası.

timestamp_expression2

İkinci zaman damgası. timestamp_expression1 farkın belirlenmesi için bu zaman damgasından çıkarılır.

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ği

Aş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_Quarter

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

Week_Of_Year

Belirtilen 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:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

Yıl

Belirtilen bir tarih için yılı döndürür.

Sözdizimi:

YEAR (date_expression)

burada:

date_expression

Bir tarihe karşılık gelen herhangi bir ifade.

Örnek:

YEAR (CURRENT_DATE)


Ağustos 2018'da Yayımlandı Copyright © 2005, 2018, Oracle. Tüm hakları saklıdır. Legal Notices.