تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
كتابة التاريخ في جملة ال sql
#9
السلام عليكم...

أنا أستعملها دائماً عند إدخال التواريخ في جمل SQL، و السبب بسيط: جميع محركات قواعد البيانات (Access و غيره) تخزن و تعامل التاريخ - داخلياً - بالتنسيق الأمريكي (mm/dd/yyyy) أي اليوم فبل الشهر، بينما التحويل الضمني (Implicit Conversion) و دوال تحويل التاريخ في VB6 تعتمد على إعدادات تنسيق التاريخ في لوحة التحكم التابعة للنظام Windows، و هذه طبعاً قد تختلف من جهاز إلى جهاز.
كود :
Dim MyDate1 As Date, MyDate2 As Date
MyDate1 = Text1.Text    ' تحويل ضمني
MyDate2 = CDate(Text2.Text)    ' تحويل باستعمال دالة
على اعتبار أن كلاً من Text1 و Text2 تحتويان نص تاريخ صحيح.

الآن لنفرض أن أياً من مربعات النص تحتوي على 02/07/2012. ما هو هذا التاريخ؟ إذا سألت شخصاً يستعمل الصيغة الأمريكية فسيقول لك إنه 7 فبراير (شباط) 2012. و إذا سألت شخصاً يستعمل التنسيق الآخر (اليوم قبل الشهر) فسيقول إنه 2 يوليو (تموز) 2012.

الأمر نفسه ينطبق على التحويل الضمني و دوال التحويل (كالدالة CDate) في الكود أعلاه، أي انهما قد تفسرانه على أنه 7 فبراير (شباط) 2012 أو 2 يوليو (تموز) 2012 بناءً على إعدادات تنسيق التاريخ في لوحة التحكم التابعة للنظام Windows.

أنا - كمستخدم عربي - من المفترض أن تنسيق التاريخ في جهازي هكذا: dd/mm/yyyy (بعضهم يختصرها DMY) أي اليوم قبل الشهر، و طبعاً سأكتب في مربع النص اليوم قبل الشهر. لنفرض أن التاريخ الذي أقصده هو 2 يوليو (تموز) 2012، فسأكتبه هكذا: 02/07/2012. التحويل الضمني و دالة التحويل CDate - ستفسره بشكل صحيح كما أقصده، و لكن عندما أرسله إلى محرك قواعد بيانات كما هو فإن محرك قواعد البيانات سيعتبر أن 2 هو الشهر، و أن 7 هو اليوم، أي 7 فبراير (شباط) 2012، و هو ما لا أقصده!

و لكن عندما أستعمل الدالة Format لتنسيق التاريخ بالصيغة المتوافقة مع ما يستعمله محرك قواعد البيانات (mm/dd/yyyy) فسأحصل دائماً على نتيجة صحيحة بصرف النظر عن تنسيق التاريخ لدى جهاز المستخدم.

نرجو الاستفادة و السلام.
بِسْمِ اللهِ الرَّحْمَنِ الرَّحِيمِ ( وَ مَا تُقَدِّمُوا لِأَنفُسِكُم مِّنْ خَيْرٍ تَجِدُوهُ عِندَ اللهِ هُوَ خَيْراً وَ أَعْظَمَ أَجْراً ) صَدَقَ اللهُ الْعَظِيمُ
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
كتابة التاريخ في جملة ال sql - بواسطة ناجي إبراهيم - 22-10-12, 11:22 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  كيفية منع تكرار التاريخ فى قاعدة البيانات ؟ gedo 7 6,322 19-06-21, 09:31 PM
آخر رد: khaled201349
  طلب كود تغير تنسيق التاريخ في جهاز الحاسوب ahmed20 0 1,434 12-02-21, 11:31 PM
آخر رد: ahmed20
  دوال التاريخ hosney 15 13,323 13-12-19, 05:54 AM
آخر رد: بسام محمدغانم
  اريد كود لتغيير التاريخ فقط للوندوز من الفجوال بيسك 6 scsi7000 0 2,433 24-08-16, 03:39 PM
آخر رد: scsi7000
  خطأ في جملة Union mamas1 1 2,216 13-12-13, 09:59 PM
آخر رد: mamas1
Question [سؤال] عرض التاريخ الهجري بالشكل الصحيح في الاداة MSHFlexGrid1 allayl 2 3,707 29-10-13, 08:13 PM
آخر رد: allayl
Question [vb6.0] إظهار التاريخ الهجري من اليمين الى اليسار allayl 5 6,599 16-09-13, 09:27 PM
آخر رد: allayl
  المساعده في مثال البحث عن قبل إنتهاء التاريخ بأسبوعين allayl 7 4,142 30-08-13, 03:31 PM
آخر رد: benomar
  كتابة كود داخل الاكسس بواسطه الكود من الفيجوال hagasoft 1 2,671 28-07-13, 12:13 AM
آخر رد: hskurd
  كيف ابحث عن تاريخ في قاعدة بيانات برنامجي بشرط ان يكون التاريخ تحت رقم حساب معين ؟؟ softmail8 2 2,879 08-07-13, 07:40 PM
آخر رد: softmail8

التنقل السريع :


يقوم بقرائة الموضوع: