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

الاستعلام باستخدام التاريخ، السنة، الشهر، الاسبوع؟؟

مغلق
بدأه عبدالله المنصوري في 26 فبراير 2007 · 4 رد · 1,246 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الإخوة الأفاضل

أريد معرفة كيفية الاستعلام باستخدام التاريخ، فلدي جدول على قاعدة مايكروسوفت إس كيو إل سيرفر، وبالجدول عمود خاص بالوقت، يقوم الإسكيوإل سيرفر بوضعه أوتوماتيكياً عند إدخال "سجل" جديد..

مثلا استخدمت الكود التالي:

SELECT COUNT(*) AS Number
FROM MyTable
WHERE DateTimeColumn=Month(1)

واستخدمت الشرط
WHERE DateTimeColumn > 01/02/2007

وكلا الشرطين يعطياني نتيجة غير صحيحة، مع العلم أني أستخدم في اختبار الاستعلامات مايكروسوفت فيجوال ستوديو2005

الأمر الآخر:

أريد معرفة كيفية استخراج السجلات التي تم إدخالها خلال هذا الأسبوع فقط، بدءاً من يوم السبت مثلا..؟؟

والله يحفظكم ويرعاكم

#2

السلام عليكم

اكتب الجملة بالشكل التالى

select * from MyTable 
where DateTimeColumn > '01/02/2002'

بالنسبة للسؤال الثانى

select * from employees 
where sharingdate >= dateadd(day, - 7, getdate())

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

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#3

جزاك الله خيرا أخي وليد وبارك الله فيك..

بالنسبة للحل الأول، جربته من قبل ولم يفد، ولكني بعد البحث والسؤال وجدت حل آخر أعطاني النتيجة الصحيحة وهو كما يلي:

WHERE MONTH(DateTimeColumn)>1

حيث أن الشهور يبدأ عدها من صفر إلى 11

ويمكن استبدال كلمة MONTH بـ YEAR أو DAY بحسب متطلباتك..

وبالنسبة للحل الثاني الذي ذكرته جزاك الله خيرا، هذا يخرج لي آخر سبعة أيام، ولا يخرج لي (منذ بداية الأسبوع) بمعنى: لو كنا في يوم الإثنين مثلاً، وبداية الأسبوع عندنا هي يوم السبت، فالمفترض أن يخرج لي السجلات التي تمت إضافتها أيام (السبت، الأحد، الاثنين) ثلاثة أيام، وإذا كنا يوم الخميس مثلاً فستكون ستة أيام، وهكذا..

آمل أن ما أقصد قد اتضح لديك..

الله يوفقنا وإياك..

#4

السلام عليكم

بالنسبة للرد على السؤال الاول انا كنت اتخيل انك تريد البحث عن اليوم المحدد وليس والشهر

اما السؤال الثانى انا كتبت فى جملة الاستلام اسبوع سابق من تاريخ اليوم الحالى لكن بكل تاكيد تستطيع تغير الكود بدل من اليوم الحالى اضافة تاريخ محدد فقط كل ما عليك حذف getdate function وضيف انت التاريخ

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

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#5

جزاك الله خيرا أخي وليد ونفع بك.

وجدت الحل بالنسبة لـ (من بداية الأسبوع) وهو يبدأ بيوم الأحد إلى اليوم الذي يتم فيه الاستعلام، وهو كما يلي:

WHERE DATENAME(wk,SomeDateColumn) = DATENAME(wk,GETDATE()) AND
YEAR(SomeDateColumn) = YEAR(GETDATE())

وياليت الإخوة المشرفين يعدلولنا موضوع انعكاس الأقواس نهاية الجملة مشكورين.

تم تعديل هذه المشاركة بواسطة عبدالله المنصوري في 27 فبراير 2007 في 21:25

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…