"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية مقارنة التواريخ بشكل صحيح في Oracle SQL؟

كيفية مقارنة التواريخ بشكل صحيح في Oracle SQL؟

نشر في 2025-02-15
تصفح:809

How to Correctly Compare Dates in Oracle SQL?

قارن التواريخ في Oracle SQL

عند مقارنة التواريخ في Oracle SQL ، تأكد من التأكد من تنسيق التاريخ بشكل صحيح. بشكل افتراضي ، يفسر Oracle التواريخ كأرقام ، والتي يمكن أن تؤدي إلى أخطاء إذا تم التعامل معها بشكل غير صحيح.

مشكلة شائعة هي استخدام سلاسل لتمثيل التواريخ. لم يتم التعرف على سلسلة (على سبيل المثال '31 -DEC-95 ') كتاريخ صالح وستؤدي إلى حدوث خطأ "معرف غير صالح". لحل هذه المشكلة ، قم بتحويل السلسلة إلى تاريخ باستخدام التاريخ الحرفي أو وظيفة TO_DATE ().

استخدم to_date ()

] تتيح لك الدالة

to_date () تحديد تنسيق سلسلة التاريخ وتحويله إلى نوع بيانات التاريخ. على سبيل المثال:

select employee_id
  from employee
 where employee_date_hired > to_date('31-12-1995','DD-MM-YYYY')

يحول هذا الاستعلام السلسلة "31 -12-1995" إلى تاريخ باستخدام تنسيق "DD-MM-Yyyy" ويقارنه مع عمود الموظف.

استخدم نص التاريخ

]]

التاريخ الحرفي هو وسيلة أخرى لتحديد التواريخ في Oracle SQL. يتم كتابتها بتنسيق "Yyy-MM-DD" ولا تحتوي على عناصر زمنية. على سبيل المثال:

select employee_id
  from employee
 where employee_date_hired > date '1995-12-31'

يقارن هذا الاستعلام عمود الموظف _date_hired مع نص التاريخ "1995-12-31" (يمثل 31 ديسمبر 1995).

معالجة الوقت والإعدادات المحلية

]

تحتوي تواريخ Oracle على مكونات زمنية ، لذلك إذا كنت بحاجة إلى إجراء مقارنات دقيقة ، فتأكد من النظر في عنصر الوقت. بالإضافة إلى ذلك ، قد تختلف تنسيقات التاريخ اعتمادًا على إعدادات NLS_DATE_FORMAT و NLS_DATE_LANAGE. إذا كنت بحاجة إلى التأكد من معالجة تاريخ ثابت عبر المناطق ، فاستخدم تنسيق Yyyy-MM-DD وتعيين NLS_DATE_FORMAT و NLS_DATE_LANAGE وفقًا لذلك.

بواسطة عدد الموظفين

لحساب عدد الموظفين العاملين بعد تاريخ محدد وتجميع النتائج حسب معرف الموظف ، يمكنك استخدام الاستعلام التالي:

select employee_id, count(*)
  from employee
 where employee_date_hired > date '1995-12-31'
 group by employee_id

يوفر هذا الاستعلام عدد الموظفين العاملين بعد 31 ديسمبر 1995 ويتم تجميعه بواسطة معرف الموظف.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3