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

مشكلة مع التاريخ

مغلق
بدأه Ashraf_k_s في 16 يونيو 2005 · 1 رد · 792 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الأخوة الأكارم السلام عليكم ورحمة الله وبركاته

لدي جدول به حقل تاريخ

اريد ان استخلص بيانات من هذا الجدول تمثل شهر وعام محدد مثلا شهر 6 عام 2005

فما هي جملة الأستعلام المطلورة لهذا الغرض

وشكرا

أشرف الشباسي

#2
اقتباس
اريد ان استخلص بيانات من هذا الجدول تمثل شهر وعام محدد مثلا شهر 6 عام 2005

تقصد أنك تريد استخراج البيانات المحصورة في شهر محدد.

كل ماعليك هو استخراج السجلات ذات التاريخ المحصور ما بين أول الشهر وآخره.

السؤال هنا هو كيف تعرف ما إذا كان الشهر 30 أم 31 أم 29 أم 28 يوم؟

بمعنى آخر: ماهو آخر يوم في الشهر؟

فقط عبر الدالة DateAdd، وسيكون الاستعلام كالتالي:

sql= "select * from mytable where insert_date between '" & me.dtpBeginDate.value  & "' and "
sql= sql & format( dateadd("m", 1, me.dtpBeginDate.value), "MM/DD/YYYY")

ولكن يوجد خطأ صغير في هذه الطريقة، وهو أنها ستعرض لك البيانات ذات تاريخ أول الشهر الذي يلي الشهر الذي تريد استخراج البيانات المتعلقة به

توجد طريقة أخرى تعتمد على تحديد عدد أيام الشهر ومن ثم تحديد آخر يوم في الشهر بناء على عدد أيامه باستعمال الدالة dateAdd

لكني لست متأكدا من هذه الطريقة ، لعدم وجود SQL Server و VB في الجهاز الذي أكتب منه

أيضا توجد طريقة ثالثة فكرتها بإيجاد السجلات ذات التواريخ أكبر من أو تساوي بداية الشهر وأقل من بداية الشهر الذي يليه، مثلا:

sql= "select * from mytable where insert_date > '" format(me.dtpBeginDate.value , "MM/DD/YYYY")
sql=sql & "' and insert_date < '"
sql=sql & format(dateadd("m", 1, me.dtpBeginDate.value), "MM/DD/YYYY") & "'"

في جميع الأكواد التي كتبتها dtpBeginDate هي أداة DateTimePicker المعروفة في VB والمستعملة لإدخال التواريخ.

جرب هذه الطرق ووافيني بالنتيجة، لحين التأكد من طريقة افضل.

بالتوفيق إن شاء الله.

تم تعديل هذه المشاركة بواسطة walcom في 16 يونيو 2005 في 16:49

فكر بطريقة أخرى

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

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