استعلام أوراكل البسيط: الحرفي لا يتطابق مع سلسلة التنسيق

StackOverflow https://stackoverflow.com/questions/4884071

سؤال

أريد تنفيذ وظيفة بسيطة في Oracle.يتم تعريف التوقيع على النحو التالي: Genacodicetagpre

يجب أن أكون قادرًا على تنفيذه باستخدام: Genacodicetagpre

ولكن عند كتابة "newcaselistforvalidation ('2010-01-01'، '2011-01-01'، 100)" ، أحصل على:

Genacodicetagpre

لقد بحثت في Google قليلاً ويبدو أنني لا أستطيع كتابة التاريخ بالتنسيق الصحيح.هل يمكن لأي شخص مساعدتي؟

هل كانت مفيدة؟

المحلول

استعلام NLS_PARAMETERS في Oracle- ستتمكن بعد ذلك من معرفة التنسيق الذي يقبل قاعدة البيانات الخاصة بك التواريخ به.

ومع ذلك ، عادةً ما أستخدم الوظيفة to_date ():

Genacodicetagpre

في المملكة المتحدة لإدخال التواريخ.

نصائح أخرى

يتمثل أحد البدائل للوظيفة to_date () في استخدام التنسيق القياسي ANSI للقيم الحرفية DATE أو TIMESTAMP:

Genacodicetagpre

يتم دائمًا تحديد التاريخ والوقت باستخدام قواعد ISO (YYYY-MM-DD وتنسيق 24 ساعة للوقت)

يعمل هذا أيضًا على الكثير من نظم إدارة قواعد البيانات الأخرى (المتوافقة مع المعيار).

من الأفضل عدم الاعتماد على قيمة معينة في إعدادات NLS_PARAMETERS ، لأن هذا سيجعل وظيفتك تتعطل في المحيط مع NLS_DATE_FORMAT آخر.

سأحدد تنسيق التاريخ صراحةً في وظيفتك كما هو مقترح في الإجابة أعلاه

Genacodicetagpre

أدخل في الجدول tblDate (تاريخ البدء) القيم (20 يونيو 2013) ؛ إذا قمت بتغيير عدد صحيح للشهر إلى سلسلة "DD-MON-YYYY" تعمل كسلسلة بيانات صالحة دون الحاجة إلى تهيئتها بمعرف التاريخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top