مدیریت تاریخ و زمان در پایگاه داده اوراکل

کار با داده های تاریخ و زمان یک جنبه حیاتی از عملیات پایگاه داده است. اوراکل مجموعه ای غنی از توابع و ویژگی های داخلی را برای مدیریت کارآمد تاریخ ها و مهرهای زمانی ارائه می دهد. این مقاله نکات و ترفندهای عملی برای دستکاری، استخراج و محاسبه مقادیر تاریخ و زمان در اوراکل را بررسی خواهد کرد.
در اوراکل، تاریخ و زمان در انواع داده های زیر ذخیره می شود:
• DATE
: تاریخ و زمان را ذخیره می کند (تا چند ثانیه). قالب پیشفرض: DD-MON-YYYY HH24:MI:SS.
• TIMESTAMP
: DATE را تا شامل ثانیه های کسری تمدید می کند.
• INTERVAL
: نمایانگر یک بازه زمانی (به عنوان مثال، روز، ساعت، دقیقه) است.
اوراکل بسیاری از توابع داخلی را برای دستکاری تاریخ ها ارائه می دهد.
1. SYSDATE و CURRENT_DATE
• SYSDATE
: تاریخ و زمان فعلی را از سرور پایگاه داده برمی گرداند.
• CURRENT_DATE
: تاریخ و زمان فعلی را در منطقه زمانی جلسه کاربر برمی گرداند.
مثال:
SELECT SYSDATE AS ServerTime, CURRENT_DATE AS UserSessionTime FROM DUAL;
نتیجه:
سرور تایم | UserSessionTime |
---|---|
29-دسامبر-2023 14:35:12 | 29-دسامبر-2023 14:35:12 |
2. جمع یا تفریق روزها و ماهها
• +
یا -
: به طور مستقیم روزها را اضافه یا کم کنید.
• ADD_MONTHS
: اضافه یا تفریق ماه.
مثال:
SELECT
SYSDATE AS Today,
SYSDATE + 7 AS NextWeek,
ADD_MONTHS(SYSDATE, 1) AS NextMonth
FROM DUAL;
نتیجه:
امروز | هفته آینده | ماه بعد |
---|---|---|
29-دسامبر-2023 14:35:12 | 05-Jan-2024 14:35:12 | 29 ژانویه-2024 14:35:12 |
3. محاسبه تفاوت بین تاریخ
• MONTHS_BETWEEN
: تعداد ماه های بین دو تاریخ را محاسبه می کند.
• SYSDATE- date
: تفاوت را در روز محاسبه می کند.
مثال:
SELECT
MONTHS_BETWEEN(SYSDATE, TO_DATE('01-JAN-2023', 'DD-MON-YYYY')) AS MonthsDiff,
SYSDATE - TO_DATE('25-DEC-2023', 'DD-MON-YYYY') AS DaysDiff
FROM DUAL;
نتیجه:
MonthsDiff | DaysDiff |
---|---|
11.9 | 4 |
4. کوتاه کردن تاریخ
• TRUNC(date, 'format')
: یک تاریخ را به یک واحد مشخص مانند شروع ماه یا سال کوتاه می کند.
مثال:
SELECT
TRUNC(SYSDATE, 'MM') AS StartOfMonth,
TRUNC(SYSDATE, 'YYYY') AS StartOfYear
FROM DUAL;
نتیجه:
StartOfMonth | StartOfYear |
---|---|
01-دسامبر-2023 00:00:00 | 01-JAN-2023 00:00:00 |
از توابع زیر برای استخراج قسمت های خاصی از تاریخ استفاده کنید:
1. استخراج
اجزایی مانند سال، ماه، روز، ساعت، دقیقه یا ثانیه را استخراج می کند.
مثال:
SELECT
EXTRACT(YEAR FROM SYSDATE) AS Year,
EXTRACT(MONTH FROM SYSDATE) AS Month,
EXTRACT(DAY FROM SYSDATE) AS Day
FROM DUAL;
نتیجه:
سال | ماه | روز |
---|---|---|
2023 | 12 | 29 |
2. TO_CHAR
یک تاریخ را به یک رشته در یک قالب مشخص تبدیل می کند.
مثال:
SELECT
TO_CHAR(SYSDATE, 'YYYY-MM-DD') AS ISODate,
TO_CHAR(SYSDATE, 'Day') AS DayName,
TO_CHAR(SYSDATE, 'HH24:MI:SS') AS Time
FROM DUAL;
نتیجه:
ISODate | DayName | زمان |
---|---|---|
29-12-2023 | جمعه | 14:35:12 |
1. فیلتر کردن سوابق بر اساس محدوده تاریخ
وظیفه: بازیابی فروش در دسامبر 2023.
SELECT *
FROM Sales
WHERE SaleDate BETWEEN TO_DATE('01-DEC-2023', 'DD-MON-YYYY')
AND TO_DATE('31-DEC-2023', 'DD-MON-YYYY');
2. گروه بندی داده های فروش بر اساس ماه
وظیفه: مجموع فروش را بر اساس ماه خلاصه کنید.
SELECT
TO_CHAR(SaleDate, 'YYYY-MM') AS SaleMonth,
SUM(Amount) AS TotalSales
FROM Sales
GROUP BY TO_CHAR(SaleDate, 'YYYY-MM')
ORDER BY SaleMonth;
نتیجه:
ماه فروش | کل فروش |
---|---|
01-2023 | 6700 |
2023-12 | 500 |
Oracle SQL ابزارهای قدرتمندی را برای مدیریت داده های تاریخ و زمان ارائه می دهد که به شما امکان می دهد داده های زمانی را به طور موثر دستکاری، فیلتر و تجزیه و تحلیل کنید. با تسلط بر این توابع و تکنیکها، میتوانید طیف گستردهای از نیازهای مربوط به تاریخ، از فیلتر کردن ساده تا محاسبات پیشرفته را برطرف کنید. این مثال ها را در پایگاه داده Oracle خود تمرین کنید تا مهارت های خود را تقویت کنید!
بیشتر کاوش کنید

از اینکه وقت گذاشتید و اطلاعات مربوط به داده ها را با من کاوش کردید متشکرم. من از نامزدی شما قدردانی می کنم.
🚀 در لینکدین با من در ارتباط باشید