البرمجة

عرض التاريخ والوقت في استعلام Oracle

عند استعلام حقل تاريخ من نوع DATE في قاعدة بيانات Oracle، يمكن أن تُعرض النتائج بتنسيق يشمل تاريخ فقط دون وقت. لكن يمكنك عرض التاريخ والوقت معًا باستخدام توابع تحويل البيانات التالية:

sql
SELECT TO_CHAR(D, 'DD-MON-YYYY HH24:MI:SS') AS DATE_AND_TIME FROM ALIK_TZ;

في هذا الاستعلام، سنقوم باستخدام تابع TO_CHAR لتحويل القيمة من نوع DATE إلى سلسلة نصية تحتوي على التاريخ والوقت. تستخدم سلسلة التنسيق 'DD-MON-YYYY HH24:MI:SS' تنسيقًا يعرض التاريخ في شكل يوم-شهر-سنة والوقت في ساعات:دقائق:ثوانٍ بتوقيت 24 ساعة.

إذا كنت بحاجة إلى عرض التاريخ والوقت في منطقة زمنية معينة، يمكنك استخدام تابع FROM_TZ لتحديد المنطقة الزمنية وجعل الوقت متوافقًا معها. على سبيل المثال، إذا كانت منطقة التوقيت المطلوبة هي ‘UTC’:

sql
SELECT TO_CHAR(FROM_TZ(D, 'UTC'), 'DD-MON-YYYY HH24:MI:SS TZD') AS DATE_AND_TIME_UTC FROM ALIK_TZ;

هذا الاستعلام يستخدم تابع FROM_TZ لتحديد المنطقة الزمنية وتحويل الوقت إلى المنطقة الزمنية المحددة، ثم يستخدم تابع TO_CHAR لعرض التاريخ والوقت بالإضافة إلى اسم المنطقة الزمنية (TZD).

المزيد من المعلومات

عندما تقوم بعرض الحقل الذي يحتوي على تاريخ من نوع DATE في قاعدة بيانات Oracle، قد تواجه تحديًا في عرض التوقيت (الوقت) بالإضافة إلى التاريخ. يعتمد ذلك على كيفية تخزين البيانات في الحقل DATE. إذا تم تخزين التوقيت مع التاريخ، يمكنك عرضه بسهولة باستخدام تابع TO_CHAR كما هو موضح في الاستعلام السابق.

ومع ذلك، إذا لم يتم تخزين التوقيت مع التاريخ (بمعنى أن جميع الأوقات يتم تخزينها كـ 00:00:00)، فلن يكون لديك توقيت لعرضه. في هذه الحالة، يمكنك تخمين التوقيت أو تفترض وجود توقيت معين للعرض، ولكن هذا ليس دقيقًا دائمًا.

لضمان دقة عرض التاريخ والوقت، يفضل تخزين التوقيت مع التاريخ باستخدام نوع البيانات TIMESTAMP بدلاً من DATE في Oracle. تستطيع استخدام TIMESTAMP مع الثواني الكاملة (TIMESTAMP WITH TIME ZONE) أو بدونها (TIMESTAMP WITHOUT TIME ZONE) حسب احتياجاتك. هذا سيتيح لك عرض التاريخ والوقت بدقة أكبر وسهولة أكبر في العمليات التحليلية.

زر الذهاب إلى الأعلى