فهم أقنعة التاريخ yy
مقابل rr
في Oracle SQL
عند العمل مع تنسيقات التاريخ في Oracle SQL، يثار تساؤل شائع: ما الفرق بين أقنعة التاريخ yy
و rr
في Oracle؟ يمكن أن يؤثر فهم هذا الفرق بشكل كبير على النتائج التي تُرجعها استعلاماتك، خاصة عند التعامل مع تنسيقات السنوات المكونة من رقمين. دعونا نفصل هذه الأقنعة ونوضح لماذا تنتج نتائج مختلفة.
المشكلة المفسرة
في Oracle SQL، عند إجراء عمليات معالجة التواريخ أو المقارنات، قد تواجه مواقف تحتاج فيها إلى تحويل السلاسل النصية إلى تنسيقات تواريخ. تُستخدم أقنعة التاريخ yy
و rr
غالبًا لهذا الغرض.
إليك مثالان يوضحان اختلافاتهما:
SELECT ename FROM emp WHERE hiredate = TO_DATE('01/05/81', 'dd/mm/yy');
SELECT ename FROM emp WHERE hiredate = TO_DATE('01/05/81', 'dd/mm/rr');
عند التنفيذ، قد تُرجع هذين الاستعلامين نتائج مختلفة بناءً على تفسير السنة “81”.
تحليل أقنعة التاريخ
قناع التاريخ yy
- التعريف: يسمح لك قناع
yy
بإدخال سنة مكونة من رقمين. - التفسير: تفترض Oracle تلقائيًا أن الرقمين يتعلقان بالقرن الحالي.
- على سبيل المثال، إذا كانت السنة الحالية 2023، فسيتم تفسير تاريخ مثل
01/05/81
على أنه السنة2081
.
- على سبيل المثال، إذا كانت السنة الحالية 2023، فسيتم تفسير تاريخ مثل
- حالة الاستخدام: قد يؤدي هذا إلى نتائج غير متوقعة، خاصة بالنسبة للتواريخ التي تشير إلى القرن العشرين.
قناع التاريخ rr
- التعريف: يقبل قناع
rr
أيضًا السنوات المكونة من رقمين ولكنه يستخدم طريقة مختلفة في تفسيرها. - التفسير: يتم تقريب السنوات التي تتكون من رقمين لتحديد السنة الكاملة:
- 50-99: تُعامل كسنوات
1950-1999
. - 00-49: تُعالج كسنوات
2000-2049
.
- 50-99: تُعامل كسنوات
- مثال: لذا، سيتم تفسير
01/05/81
على أنه1981
، وهو المرجع المقصود في معظم الحالات.
ملخص الأمثلة
إليك ملخص لكيفية تأثير هذه الأقنعة على المخرجات:
- الاستعلام الذي يستخدم
yy
:- يفترض أن
01/05/81
هو2081
التي من المرجح أن لا تكون لها توظيفات مطابقة.
- يفترض أن
- الاستعلام الذي يستخدم
rr
:- يرى نفس التاريخ على أنه
1981
، والذي من المفترض أن يكون له سجلات توظيف في جدولemp
.
- يرى نفس التاريخ على أنه
الخاتمة
فهم الفروق بين yy
و rr
أمر بالغ الأهمية عند كتابة استعلامات Oracle SQL التي تتضمن التواريخ. بينما يمكن أن يؤدي yy
إلى سوء تفسير السنوات المستقبلية، يوفر قناع rr
نهجًا أكثر عقلانية لتحويل السنوات المكونة من رقمين مع قواعد التقريب الخاصة به.
يمكن أن يوفر اختيار القناع الصحيح تجنب استبعاد البيانات عن غير قصد ويضمن أن استعلامات SQL الخاصة بك تُعطي النتائج المقصودة. في معظم الحالات المتعلقة بالبيانات التاريخية، يُوصى باستخدام قناع rr
لتحقيق الوضوح والدقة.
تأكد دائمًا من مراعاة سياق بياناتك والسنة الحالية عند العمل مع السنوات المكونة من رقمين لتجنب الفخاخ والأخطاء في التفسير.