برنامه نویسی

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

کار با داده های تاریخ و زمان یک جنبه حیاتی از عملیات پایگاه داده است. اوراکل مجموعه ای غنی از توابع و ویژگی های داخلی را برای مدیریت کارآمد تاریخ ها و مهرهای زمانی ارائه می دهد. این مقاله نکات و ترفندهای عملی برای دستکاری، استخراج و محاسبه مقادیر تاریخ و زمان در اوراکل را بررسی خواهد کرد.

در اوراکل، تاریخ و زمان در انواع داده های زیر ذخیره می شود:

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 خود تمرین کنید تا مهارت های خود را تقویت کنید!


بیشتر کاوش کنید

تصویر luca1iu

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

🚀 در لینکدین با من در ارتباط باشید

https%3A%2F%2Fimg.buymeacoffee

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا