Aracılığıyla paylaş


Saat, Tarih ve Aralık İşlevleri

Aşağıdaki tabloda ODBC skaler işlev kümesine dahil edilen saat ve tarih işlevleri listelenmektedir. Uygulama, SQL_TIMEDATE_FUNCTIONS bilgi türüne sahip SQLGetInfo çağırarak sürücü tarafından hangi saat ve tarih işlevlerinin destekleneceğini belirleyebilir.

timestamp_exp olarak belirtilen bağımsız değişkenler bir sütunun adı, başka bir skaler işlevin sonucu veya ODBC-date-escapeODBC-date- kaçışveya temel alınan veri türünün SQL_CHAR, SQL_VARCHAR, SQL_TYPE_TIME, SQL_TYPE_DATE veya SQL_TYPE_TIMESTAMP olarak temsil edilebileceği ODBC-timestamp-escapeolabilir.

date_exp olarak belirtilen bağımsız değişkenler bir sütunun adı, başka bir skaler işlevin sonucu veya odbc-date-escape veya odbc-timestamp-escapeolabilir; burada temel alınan veri türü SQL_CHAR, SQL_VARCHAR, SQL_TYPE_DATE veya SQL_TYPE_TIMESTAMP olarak gösterilebilir.

time_exp olarak belirtilen bağımsız değişkenler bir sütunun adı, başka bir skaler işlevin sonucu veya temel alınan veri türünün SQL_CHAR, SQL_VARCHAR, SQL_TYPE_TIME veya SQL_TYPE_TIMESTAMP olarak temsil edilebileceği ODBC zaman damgası-kaçış veya ODBC-zaman damgası-kaçış olabilir.

SQL-92 ile uyumlu hale getirmek için ODBC 3.0'da CURRENT_DATE, CURRENT_TIME ve CURRENT_TIMESTAMP zamantarihi skaler işlevleri eklenmiştir.

Fonksiyon Açıklama
CURRENT_DATE( ) (ODBC 3.0) Geçerli tarihi döndürür.
CURRENT_TIME[(zaman duyarlık)] (ODBC 3.0) Geçerli yerel saati döndürür. zaman duyarlık bağımsız değişkeni, döndürülen değerin saniye duyarlığı belirler.
CURRENT_TIMESTAMP
[(zaman damgası duyarlık)] (ODBC 3.0)
Geçerli yerel tarihi ve yerel saati zaman damgası değeri olarak döndürür. zaman damgası duyarlık bağımsız değişkeni, döndürülen zaman damgasının saniye duyarlığı belirler.
CURDATE( ) (ODBC 1.0) Geçerli tarihi döndürür.
CURTIME( ) (ODBC 1.0) Geçerli yerel saati döndürür.
DAYNAME(date_exp) (ODBC 2.0) günün veri kaynağına özgü adını (örneğin, Pazar-Cumartesi veya Güneş arası) içeren bir karakter dizesi döndürür. İngilizce kullanan bir veri kaynağı için Sat. veya Almanca kullanan bir veri kaynağı için Samstag aracılığıyla Sonntag date_exp.
DAYOFMONTH(date_exp) (ODBC 1.0) date_exp içindeki ay alanına göre ayın gününü 1-31 aralığındaki bir tamsayı değeri olarak döndürür.
DAYOFWEEK(date_exp) (ODBC 1.0) date_exp içindeki hafta alanına göre haftanın gününü, 1-7 aralığındaki bir tamsayı değeri olarak verir; burada 1 Pazar'ı temsil eder.
DAYOFYEAR(date_exp) (ODBC 1.0) 1-366 aralığındaki bir tamsayı değeri olarak date_exp yıl alanına göre yılın gününü döndürür.
EXTRACT(extract-field FROMextract-source) (ODBC 3.0) ayıklama kaynağı ayıklama alanı bölümünü döndürür. ayıklama kaynağı bağımsız değişkeni bir tarih saat veya aralık ifadesidir. ayıklama alanı bağımsız değişkeni aşağıdaki anahtar sözcüklerden biri olabilir:

YIL AY GÜNÜ SAAT DAKİkA

Döndürülen değerin duyarlığı uygulama tanımlıdır. SECOND belirtilmediği sürece ölçek 0'dır; bu durumda ölçek, ayıklama kaynağı alanının kesirli saniye duyarlığından küçük değildir.
HOUR(time_exp) (ODBC 1.0) time_exp içindeki saat alanına göre saati, 0-23 aralığındaki bir tamsayı değeri olarak döndürür.
MINUTE(time_exp) (ODBC 1.0) 0-59 aralığındaki bir tamsayı değeri olarak time_exp dakika alanını temel alarak dakikayı döndürür.
AY(date_exp) (ODBC 1.0) 1-12 aralığındaki bir tamsayı değeri olarak date_exp içindeki ay alanını temel alan ayı döndürür.
MONTHNAME(date_exp) (ODBC 2.0) date_expay bölümü için ayın veri kaynağına özgü adını (örneğin, Ocak-Aralık veya Aralık arası) İngilizce kullanan bir veri kaynağı için veya Almanca kullanan bir veri kaynağı için Ocak ile Dezember arasında bir karakter dizesi döndürür.
NOW( ) (ODBC 1.0) Geçerli tarih ve saati zaman damgası değeri olarak döndürür.
QUARTER(date_exp) (ODBC 1.0) date_exp içindeki üç aylık dönemi 1-4 aralığındaki bir tamsayı değeri olarak döndürür; burada 1 Ocak ile 31 Mart arasında 1'i temsil eder.
SECOND(time_exp) (ODBC 1.0) 0-59 aralığındaki bir tamsayı değeri olarak time_exp ikinci alanı temel alarak ikinciyi döndürür.
TIMESTAMPADD(aralık, integer_exp, timestamp_exp) (ODBC 2.0) timestamp_exp aralık türünde integer_exp aralıklar ekleyerek hesaplanan zaman damgasını döndürür. geçerli aralık değerleri aşağıdaki anahtar sözcüklerdir:

SQL_TSI_FRAC_SECOND

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

burada kesirli saniyeler saniyenin milyarda biri cinsinden ifade edilir. Örneğin, aşağıdaki SQL deyimi her çalışanın adını ve bir yıllık yıldönümü tarihini döndürür:

SELECT NAME, {fn TIMESTAMPADD(SQL_TSI_YEAR, 1, HIRE_DATE)} FROM EMPLOYEES

timestamp_exp bir saat değeriyse ve aralığı günleri, haftaları, ayları, üç aylık dönemleri veya yılları belirtirse, timestamp_exp tarih bölümü, sonuçta elde edilen zaman damgasını hesaplamadan önce geçerli tarihe ayarlanır.

timestamp_exp bir tarih değeriyse ve aralığı kesirli saniyeleri, saniyeleri, dakikaları veya saatleri belirtirse, elde edilen zaman damgası hesaplanmadan önce timestamp_exp zaman bölümü 0 olarak ayarlanır.

Uygulama, SQL_TIMEDATE_ADD_INTERVALS seçeneğiyle SQLGetInfo çağırarak veri kaynağının hangi aralıkları desteklediğini belirler.
TIMESTAMPDIFF(aralık, timestamp_exp1, timestamp_exp2) (ODBC 2.0) timestamp_exp2 timestamp_exp1'den büyük olduğu aralık türündeki aralıkların tamsayısını döndürür. geçerli aralık değerleri aşağıdaki anahtar sözcüklerdir:

SQL_TSI_FRAC_SECOND

SQL_TSI_SECOND

SQL_TSI_MINUTE

SQL_TSI_HOUR

SQL_TSI_DAY

SQL_TSI_WEEK

SQL_TSI_MONTH

SQL_TSI_QUARTER

SQL_TSI_YEAR

burada kesirli saniyeler saniyenin milyarda biri cinsinden ifade edilir. Örneğin, aşağıdaki SQL deyimi her çalışanın adını ve çalıştırıldıkları yıl sayısını döndürür:

SELECT NAME, {fn TIMESTAMPDIFF(SQL_TSI_YEAR, {fn CURDATE()}, HIRE_DATE)} FROM EMPLOYEES

Zaman damgası ifadelerinden biri bir zaman değeriyse ve aralığı günleri, haftaları, ayları, üç aylık dönemleri veya yılları belirtiyorsa, zaman damgaları arasındaki farkı hesaplamadan önce bu zaman damgasının tarih bölümü geçerli tarihe ayarlanır.

Zaman damgası ifadelerinden biri tarih değeriyse ve aralığı kesirli saniye, saniye, dakika veya saat belirtirse, zaman damgaları arasındaki farkı hesaplamadan önce bu zaman damgasının zaman dilimi 0 olarak ayarlanır.

Uygulama, SQL_TIMEDATE_DIFF_INTERVALS seçeneğiyle SQLGetInfo çağırarak bir veri kaynağının hangi aralıkları desteklediğini belirler.
WEEK(date_exp) (ODBC 1.0) 1-53 aralığındaki bir tamsayı değeri olarak date_exp içindeki hafta alanını temel alarak yılın haftasını döndürür.
YIL(date_exp) (ODBC 1.0) date_exp içindeki yıl alanını temel alan yılı bir tamsayı değeri olarak döndürür. Aralık, veri kaynağına bağımlıdır.