دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Enumeration در سی شارپ
1403/09/01 -
پارتیشن بندی در پایگاه داده اوراکل
1403/08/30 -
Delegates در سی شارپ
1403/08/29 -
انواع ایندکس در پایگاه داده اوراکل
1403/08/28 -
سربارگذاری متدها در سی شارپ
1403/08/27
توابع تاریخ در پایگاه داده اوراکل
مقدمهای بر توابع تاریخ در پایگاه داده اوراکل
توابع تاریخ در پایگاه داده اوراکل برای انجام محاسبات زمانی و مدیریت دادههای مربوط به تاریخ و زمان استفاده میشوند.
این توابع برای پردازش اطلاعات مربوط به تاریخها، مانند افزودن یا تفریق روزها، پیدا کردن تفاوت بین دو تاریخ، یا تبدیل رشتههای متنی به قالبهای تاریخ بهکار میروند.
پایگاه داده اوراکل یکی از قدرتمندترین سیستمهای مدیریت پایگاه داده رابطهای است که توابع بسیاری را برای کار با تاریخها و زمانها ارائه میدهد.
این توابع برای برنامهنویسان و تحلیلگران پایگاه داده امکان انجام محاسبات پیچیده را در زمانبندی و تحلیل دادههای تاریخی فراهم میکنند.
ساختار توابع تاریخ در پایگاه داده اوراکل
قبل از ورود به بحث توابع تاریخ، لازم است به نحوه مدیریت تاریخ در اوراکل پرداخته شود.
در اوراکل، دادههای مربوط به تاریخ و زمان از طریق نوع دادهای به نام DATE ذخیره و مدیریت میشوند.
این نوع دادهای شامل اطلاعات مربوط به سال، ماه، روز، ساعت، دقیقه و ثانیه است.
به عنوان مثال، یک مقدار DATE میتواند به شکل 01-JAN-2024 15:30:00 ذخیره شود.
همچنین نوع دادههای دیگر مانند TIMESTAMP، INTERVAL و TIMESTAMP WITH TIME ZONE نیز برای مدیریت اطلاعات دقیقتر و جزئیات زمانی استفاده میشوند.
انواع توابع تاریخ در پایگاه داده اوراکل
-
تابع SYSDATE
تابع SYSDATE برای بازیابی تاریخ و زمان جاری از سیستم پایگاه داده استفاده میشود.
این تابع بدون نیاز به پارامترهای ورودی عمل کرده و تاریخ و زمان فعلی را بازمیگرداند.
ساختار:
SYSDATE
مثال:
SELECT SYSDATE AS current_date FROM dual;
خروجی:
CURRENT_DATE
------------
01-JAN-2024 15:30:00
این تابع زمان و تاریخ فعلی سرور پایگاه داده را برمیگرداند.
-
تابع CURRENT_DATE
تابع CURRENT_DATE مشابه تابع SYSDATE است، اما با این تفاوت که زمان را بر اساس ناحیه زمانی (time zone) کاربر برمیگرداند.
ساختار:
CURRENT_DATE
مثال:
SELECT CURRENT_DATE AS user_current_date FROM dual;
این تابع زمان و تاریخ فعلی کاربر را بر اساس ناحیه زمانی که کاربر تنظیم کرده است بازمیگرداند.
-
تابع SYSTIMESTAMP
تابع SYSTIMESTAMP تاریخ و زمان فعلی سیستم را با دقت بالا و همراه با اطلاعات ناحیه زمانی سرور برمیگرداند.
ساختار:
SYSTIMESTAMP
مثال:
SELECT SYSTIMESTAMP AS current_timestamp FROM dual;
خروجی به این شکل خواهد بود:
01-JAN-2024 15:30:00.123456 PM -08:00
این خروجی شامل تاریخ، زمان با دقت میلیثانیه و اطلاعات ناحیه زمانی سرور است.
-
تابع CURRENT_TIMESTAMP
تابع CURRENT_TIMESTAMP زمان فعلی کاربر را با دقت بالا همراه با ناحیه زمانی کاربر بازمیگرداند.
ساختار:
CURRENT_TIMESTAMP
مثال:
SELECT CURRENT_TIMESTAMP AS user_current_timestamp FROM dual;
این تابع مشابه SYSTIMESTAMP عمل میکند، اما زمان را بر اساس ناحیه زمانی کاربر نمایش میدهد.
-
تابع EXTRACT
تابع EXTRACT امکان استخراج بخشهای خاصی از یک مقدار تاریخ یا زمان مانند سال، ماه، روز یا ساعت را فراهم میکند. این تابع به کاربران اجازه میدهد بخشهای مختلف تاریخ را بهطور جداگانه بازیابی کنند.
ساختار:
EXTRACT (part FROM date)
part: بخشی که قرار است استخراج شود (مانند YEAR، MONTH، DAY، HOUR، MINUTE).
date: تاریخ یا زمان ورودی.
مثال:
استخراج سال از تاریخ جاری:
SELECT EXTRACT(YEAR FROM SYSDATE) AS current_year FROM dual;
خروجی:
CURRENT_YEAR
------------
2024
-
تابع TO_DATE
تابع TO_DATE برای تبدیل یک رشته متنی (String) به قالب تاریخ استفاده میشود.
این تابع به شما این امکان را میدهد که رشتهای از نوع VARCHAR را به یک مقدار DATE تبدیل کنید.
ساختار:
TO_DATE(string, format)
string: رشتهای که باید تبدیل شود.
format: فرمت تاریخ که رشته را توصیف میکند.
مثال:
SELECT TO_DATE('2024-01-01', 'YYYY-MM-DD') AS date_value FROM dual;
خروجی:
DATE_VALUE
----------
01-JAN-2024
-
تابع TO_CHAR
تابع TO_CHAR برای تبدیل یک مقدار تاریخ یا زمان به رشته متنی با فرمت دلخواه استفاده میشود.
این تابع معمولاً برای نمایش اطلاعات تاریخ به شکل قابل فهم یا قابل نمایش در خروجی استفاده میشود.
ساختار:
TO_CHAR(date, format)
date: مقدار تاریخی که باید تبدیل شود.
format: فرمت نمایش تاریخ.
مثال:
SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') AS formatted_date FROM dual;
خروجی:
FORMATTED_DATE
--------------
2024-01-01 15:30:00
-
تابع ADD_MONTHS
تابع ADD_MONTHS امکان افزودن یا کمکردن تعداد مشخصی از ماهها به یک تاریخ را فراهم میکند.
این تابع بهطور گسترده برای محاسبات زمانی و تعدیل تاریخها استفاده میشود.
ساختار:
ADD_MONTHS(date, n)
date: تاریخ ورودی.
n: تعداد ماههایی که باید اضافه یا کم شود.
مثال:
SELECT ADD_MONTHS(SYSDATE, 6) AS future_date FROM dual;
در این مثال، شش ماه به تاریخ جاری افزوده شده و تاریخ جدید بازگردانده میشود.
-
تابع MONTHS_BETWEEN
تابع MONTHS_BETWEEN تفاوت تعداد ماهها بین دو تاریخ را برمیگرداند.
این تابع برای محاسباتی که به مقایسه دو تاریخ نیاز دارند استفاده میشود.
ساختار:
MONTHS_BETWEEN(date1, date2)
date1: تاریخ اول.
date2: تاریخ دوم.
مثال:
SELECT MONTHS_BETWEEN('2024-06-01', '2024-01-01') AS months_difference FROM dual;
خروجی:
MONTHS_DIFFERENCE
-----------------
5
-
تابع NEXT_DAY
تابع NEXT_DAY تاریخ اولین روز از هفته بعدی را که پس از تاریخ مشخصشده رخ میدهد، بازمیگرداند.
این تابع برای پیدا کردن روزهای آینده خاص مانند اولین دوشنبه یا جمعه استفاده میشود.
ساختار:
NEXT_DAY(date, day_of_week)
date: تاریخ ورودی.
day_of_week: نام روز هفته (مانند 'SUNDAY'، 'MONDAY').
مثال:
SELECT NEXT_DAY(SYSDATE, 'MONDAY') AS next_monday FROM dual;
در این مثال، اولین دوشنبه پس از تاریخ جاری بازگردانده میشود.
-
تابع LAST_DAY
تابع LAST_DAY آخرین روز ماه را برای یک تاریخ مشخص برمیگرداند.
ساختار:
LAST_DAY(date)
date: تاریخ ورودی.
مثال:
SELECT LAST_DAY(SYSDATE) AS last_day_of_month FROM dual;
در این مثال، آخرین روز ماه جاری بازگردانده میشود.
-
تابع TRUNC
تابع TRUNC برای قطعکردن زمان یا تاریخ استفاده میشود و فقط بخشی از تاریخ را برمیگرداند (مانند روز، ماه، یا سال). این تابع برای حذف جزئیات اضافی از زمان استفاده میشود.
ساختار:
TRUNC(date, [format])
date: تاریخ ورودی.
format: فرمت دلخواه برای قطعکردن (اختیاری).
مثال:
SELECT TRUNC(SYSDATE, 'MONTH') AS first_day_of_month FROM dual;
در این مثال، اولین روز از ماه جاری بازگردانده میشود.
-
تابع ROUND
تابع ROUND تاریخ را به نزدیکترین روز، ماه، یا سال گرد میکند.
این تابع شبیه به تابع TRUNC است، با این تفاوت که مقدار تاریخ را به نزدیکترین بخش گرد میکند.
ساختار:
ROUND(date, [format])
date: تاریخ ورودی.
format: فرمت دلخواه برای گرد کردن (اختیاری).
مثال:
SELECT ROUND(SYSDATE, 'MONTH') AS rounded_date FROM dual;
-
تابع NEW_TIME
تابع NEW_TIME امکان تبدیل یک تاریخ از یک منطقه زمانی به منطقه زمانی دیگر را فراهم میکند.
ساختار:
NEW_TIME(date, zone1, zone2)
date: تاریخ ورودی.
zone1: منطقه زمانی مبدا.
zone2: منطقه زمانی مقصد.
مثال:
SELECT NEW_TIME(SYSDATE, 'PST', 'EST') AS new_time_in_est FROM dual;
دوره های مرتبط
اموزش پایگاه داده اوراکل Oracle
در دوره آموزش پایگاه داده اوراکل اصول ، مفاهیم ، طراحی ، پیادهسازی و مدیریت پایگاه داده را به صورت جامع آموزش می دهیم .