الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دوال التحويل

مغلق
بدأه سلطان جافا في 2 ديسمبر 2005 · 1 رد · 2,351 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اخواني, كيف الحال؟

ارجو منكم مساعدتي في حل هذا السؤال

اكتب جملة استعلام لتحويل السلسة الحرفية التالية إلى تاريخ؟ يحيث تظهر النتيجة كالتالي:

السلسة الحرفية (FEBRUARY 22,2004)

النتيجة

MY DATE

2004/02/22 (لغة الارقام الانكليزيه)

ولكم مني جزيل الشكر

#2

أولاً أخي تأكد من أن صيغة التاريخ في جهازك هي بالصيغة DD/MM/YYYY

وذلك بكتابة الإستعلام التالي:

select sysdate from dual;

فإذا ظهر بصيغة أخرى فيمكنك تحويله إلى هذه الصيغة بإستخدام الكود التالي:

alter session set
NLS_DATE_FORMAT='DD/MM/YYYY';

الأن أكتب الكود التالي:

select to_date(
'FEBRUARY 22,2005',
'MONTH DD,YYYY',
'NLS_DATE_LANGUAGE=ENGLISH')
from dual;

الدالة TO_DATE صيغتها هي:

TO_DATE('date','format','NLSPremater');

حيث date هو نص تريد تحويله إلى صيغة تاريخ

و format هو صيغة التاريخ الذي في النص date

فإذا كان مثلاً date='February 25,2004' فيجب أن يكون Format='MONTH DD,YYYY'

وإذا كان date='25-10-2001' فيجب أن يكون Format='DD-MM-YYYY'

وهكذا..

أي أن format يعلم الـ SQL بصيغة التاريخ التي أدخلت في date

أما NLSPremater فيوجد مجموعة منها وإحداها هي NLS_DATE_LANGUAGE فهي تحول أسماء الأشهر إلى اللغة التي تختارها

وهنا أخترنا اللغة الإنجليزية لإن الصيغة التي نريد أن نحولها أسماء الأشهر فيها بالإنجليزي

فقد تكون أسماء الأشهر في SQL عربية (يناير، فبراير،...) وبذلك لن يستطيع الـ SQL أن يفهم كلمة FEBRUARY .

ولذلك يجب أن نعلم الـ SQL بأن أسماء الأشهر هي بالإنجليزي (January,Fabruary,..)

إن شاء الله تكون المعلومة وصلت.. :lol:

post-63635-1133610399_thumb.jpg

هذا الموضوع مغلق.

مواضيع مشابهة