PL/SQL Tarih Saat Fonksiyonları
Plsql’de tarih ve saat işlemlerini örneklerle açıklamaya çalıştım..
Şu anki zaman;
SELECT SYSDATE FROM dual;
Şu anki zaman; ( systimestamp )
SELECT SYSTIMESTAMP FROM dual
Saat dilimi ve current tarih:
SELECT sessiontimezone, current_date FROM DUAL;
Saat dilimini değiştirmek:
ALTER SESSION SET TIME_ZONE = ‘-5:0’;
Tarihe gün eklemek, çıkarmak:
SELECT SYSDATE+10 FROM dual; –10 gün sonraki tarih
SELECT SYSDATE+45 FROM dual; –45 gün önceki tarih
Tarihi stringe çevirmek:
SELECT TO_CHAR(SYSDATE,’DD-MON-YYYY HH:MI:SS’) FROM dual;
Tarihin saat kısmını almak:
SELECT TO_CHAR(SYSDATE,’HH:MI:SS’) FROM dual;
SELECT TO_CHAR(SYSDATE,’HH24:MI:SS’) FROM dual;
Tarihin gün/ay/yıl kısmını almak:
SELECT TO_CHAR(SYSDATE,’DD.MM.YYYY’) FROM dual; –string döndürür
SELECT TRUNC(SYSDATE) FROM dual; –tarih döndürür
Tarihin yılını almak:
SELECT TO_CHAR(SYSDATE,’YYYY’) FROM dual;
Tarihin yılını yazıyla almak:
SELECT TO_CHAR(SYSDATE,’YEAR’) FROM dual;
Yılın hangi günü olduğunu bulmak: (1-365)
SELECT TO_CHAR(SYSDATE,’DDD’) FROM dual;
Tarihin hangi çeyreğe düştüğünü bulmak:(1,2,3,4 çeyrek)
SELECT TO_CHAR(SYSDATE,’Q’) FROM dual;
Tarihin Ay numarasını bulmak:
SELECT TO_CHAR(SYSDATE,’MM’) FROM dual;
Tarihin gün numarasını bulmak:
SELECT TO_CHAR(SYSDATE,’DD’) FROM dual;
Tarihin ay adını bulmak:
SELECT TO_CHAR(SYSDATE,’MONTH’) FROM dual;
SELECT TO_CHAR(SYSDATE,’MON’) FROM dual;
Tarihin gün adını bulmak:
SELECT TO_CHAR(SYSDATE,’DAY’) FROM dual;
Tarihe Ay eklemek, çıkarmak:
SELECT ADD_MONTHS(SYSDATE,1) FROM dual;
SELECT ADD_MONTHS(SYSDATE,-4) FROM dual;
Ayın ilk gününü bulmak:
SELECT TO_CHAR(TRUNC(SYSDATE,’MM’),’DD.MM.YYYY’) FROM DUAL;
Ayın son gününü bulmak:
SELECT last_day(SYSDATE) FROM dual;
Bir sonraki X gününün tarihini bulmak:
SELECT NEXT_DAY(SYSDATE, ‘SALI’) FROM DUAL;
–Bir sonraki salının tarihi
Verilen stringi tarihe çevirmek:
SELECT TO_DATE(‘21.10.2010′,’DD.MM.YYYY’) FROM dual;
Verilen tarihin yıl hafta numarasını bulmak(1-52):
SELECT TO_CHAR(SYSDATE,’IW’) FROM dual;
İki tarih arasındaki ay farkını bulmak:
SELECT MONTHS_BETWEEN(SYSDATE+365,SYSDATE-365) FROM DUAL;
Verilen tarihler arasındaki en büyüğünü bulmak:
SELECT GREATEST(SYSDATE, SYSDATE+10, SYSDATE+190) FROM DUAL;
Verilen tarihler arasındaki en küçüğünü bulmak:
SELECT LEAST(SYSDATE, SYSDATE-10,SYSDATE+190) FROM DUAL;
MAX ve MIN fonksiyonları tarihlerde de kullanılabilir.
Maximum tarihi bulmak:
SELECT MAX(last_ddl_time) FROM user_objects;
Minumum tarihi bulmak:
SELECT MAX(last_ddl_time) FROM user_objects;
Genel olarak kullanabileceğimiz formatlar aşağıdaki gibidir..
Parameter | Explanation |
---|---|
YEAR | Year, spelled out alphabetically |
YYYY | 4-digit year |
YYY YY Y |
Last 3, 2, or 1 digit(s) of year. |
IYY IY I |
Last 3, 2, or 1 digit(s) of ISO year. |
IYYY | 4-digit year based on the ISO standard |
RRRR | Accepts a 2-digit year and returns a 4-digit year. A value between 0-49 will return a 20xx year. A value between 50-99 will return a 19xx year. |
Q | Quarter of year (1, 2, 3, 4; JAN-MAR = 1). |
MM | Month (01-12; JAN = 01). |
MON | Abbreviated name of the month. |
MONTH | The name of month, padded with blanks to length of 9 characters. |
RM | Roman numeral month (I-XII; JAN = I). |
WW | The week of the year (1-53) where week 1 starts on the first day of the year and continues to the seventh day of the year. |
W | The week of the month (1-5) where week 1 starts on the first day of the month and ends on the seventh. |
IW | The week of year (1-52 or 1-53) based on the ISO standard. |
D | Day of the week (1-7). Sunday is day 1 when nls_territory is set to ‘AMERICA’ but differs if another nls_territory is set (i.e. ‘UNITED KINGDOM’ or ‘GERMANY’ – in these cases Monday is 1. |
DAY | Name of the day. |
DD | The day of month (1-31). |
DDD | The day of year (1-366). |
DY | Abbreviated name of the day. (Mon, Tue, Wed, etc) |
J | Julian day; the number of days since January 1, 4712 BC. |
HH | Hour of day (1-12). |
HH12 | Hour of day (1-12). |
HH24 | Hour of day (0-23). |
MI | Minute (0-59). |
SS | Second (0-59). |
SSSSS | Number of seconds past midnight (0-86399). |
FF | Fractional seconds. Use a value from 1 to 9 after FF to indicate the number of digits in the fractional seconds. For example, ‘FF5’. |
AM, A.M., PM, or P.M. | Meridian indicator |
AD or A.D | AD indicator |
BC or B.C. | BC indicator |
TZD | Daylight savings identifier. For example, ‘PST’ |
TZH | Time zone hour. |
TZM | Time zone minute. |
TZR | Time zone region. |