السلام عليكم اعمل على قاعدة بيانات اريد طباعة تقارير بتدا مثلااا
من تاريخ 10-5-2017
الى تاريخ 10-5-2023
كيف يمكن كتابة هذا الاستعلام
عليك استخدام الجملة الشرطية "BETWEEN" مع التواريخ المحددة:
SELECT * FROM اسم_الجدول WHERE اسم_الحقل_الذي_تريد_البحث_بناءً_عليه BETWEEN '2017-05-10' AND '2023-05-10';
ويجب استبدال "اسم_الجدول" بالجدول الذي تريد البحث فيه و "اسم_الحقل_الذي_تريد_البحث_بناءً_عليه" بالحقل الذي تريد البحث فيه، واستبدال التواريخ '2017-05-10' و '2023-05-10' بالتواريخ التي ترغب في البحث بينها.
أو استخدام دالة DATE_FORMAT()، حيث تستقبل الدالة تاريخًا كوسيطة وتعيد التاريخ بتنسيق نصي محدد، أي لطباعة تاريخ 10-5-2017 بتنسيق "yyyy-mm-dd"، نستخدم الاستعلام التالي:
SELECT DATE_FORMAT(date, '%Y-%m-%d') FROM table;
والنتيجة هي:
2017-05-10
ولطباعة التواريخ من تاريخ إلى تاريخ آخر، استخدم دالة BETWEEN()، حيث تستقبل تاريخين كوسيطة وتعيد جميع التواريخ بين هذين التاريخين، أي لطباعة جميع التواريخ من 10-5-2017 إلى 10-5-2023، نكتب الآتي:
SELECT date FROM table WHERE date BETWEEN '2017-05-10' AND '2023-05-10';
ولمعلوماتك أيضًا بإمكانك استخدام دالة DATEDIFF() لحساب الفرق بين تاريخين، وكمثال لحساب الفرق بين تاريخ 10-5-2017 وتاريخ 10-5-2023، عليك كتابة:
SELECT DATEDIFF('2023-05-10', '2017-05-10');
أعتقد أنه لكتابة استعلام SQL من أجل لاستخراج التقارير من قاعدة البيانات بناء على تاريخ البداية وتاريخ النهاية، مثلا يمكن استخدام الاستعلام التالي كمثال يمكن كتابته وفقا لهذه الطريقة:
SELECT * FROM اسم_الجدول
WHERE تاريخ BETWEEN '2017-05-10' AND '2023-05-10'.
لكن يجب التأكد من استبدال اسم الجدول بالاسم الصحيح لجدول البيانات الذي نرغب في استخراج التقارير منه لأنه حسب علمي العديد من المشكلات تظهر بسبب ال Duplication.
يمكنك استخدام جملة SELECT مع جملة الشرطية BETWEEN.
في حالتك، تريد طباعة جميع البيانات من تاريخ 10-5-2017 إلى تاريخ 10-5-2023. يمكنك كتابة الاستعلام التالي:
SELECT * FROM جدول WHERE تاريخ_الحدث BETWEEN '2017-05-10' AND '2023-05-10';
اما إذا كنت تريد تحديد تواريخ معينة يمكنك استخدام جملة IN مثال على ذلك
SELECT * FROM جدول WHERE تاريخ_الحدث IN ('2017-05-10', '2017-05-11', ..., '2023-05-10');
يمكن أيضا استخدام يمكنك استخدام عبارة WHERE مع معاملات مقارنة عادية. على سبيل المثال:
SELECT * FROM your_table WHERE your_date_column >= '2017-05-10' AND your_date_column <= '2023-05-10';
هذا الاستعلام سيستخدم العبارة WHERE لتحديد الصفوف التي تحتوي على تاريخ في العمود الذي تريد التحقق منه (`your_date_column`) والذي يكون أكبر من أو يساوي تاريخ البداية وأقل من أو يساوي تاريخ النهاية. (قم طبعا تغيير `your_table` إلى اسم الجدول الخاص بك و`your_date_column` إلى اسم العمود الذي يحتوي على التواريخ.)
التعليقات