لدي سؤال صغير حول SQL Server: كيفية الحصول على معلومات آخر 30 يومًا من هذا الجدول
بيانات العينة:
Product
:
Pdate
----------
2014-11-20
2014-12-12
2014-11-10
2014-12-13
2014-10-12
2014-11-15
2014-11-14
2014-11-16
2015-01-18
استنادا إلى هذا الجدول البيانات أريد الإخراج مثل أدناه
pdate
-------
2014-11-20
2014-12-12
2014-12-13
2014-11-16
جربت هذا الاستعلام
SELECT *
FROM product
WHERE pdate >= DATEADD(day, -30, getdate()).
لكنه الآن يعطي النتيجة بالضبط. من فضلك أخبرني كيفية حل هذه المشكلة في SQL Server
أضف حالة أخرى في where clause
SELECT * FROM product
WHERE pdate >= DATEADD(day,-30,GETDATE())
and pdate <= getdate()
أو استخدم DateDiff
SELECT * FROM product
WHERE DATEDIFF(day,pdate,GETDATE()) between 0 and 30
يمكنك استخدام DateDiff
لهذا الغرض. ستبدو جملة أين في طلب البحث الخاص بك:
where DATEDIFF(day,pdate,GETDATE()) < 31
لا أعرف لماذا كل هذه الإجابات المعقدة موجودة هنا ، لكن هذا ما سأفعله
where pdate >= CURRENT_TIMESTAMP -30
OR WHERE CAST(PDATE AS DATE) >= GETDATE() -30
يمكنك استخدام هذا للحصول على بيانات آخر 30 يومًا بناءً على عمود.
WHERE DATEDIFF (dateColumn، CURRENT_TIMESTAMP) بين 0 و 30
هذا يجب أن تعمل بشكل جيد
SELECT * FROM product
WHERE pdate BETWEEN datetime('now', '-30 days') AND datetime('now', 'localtime')
الاستعلام التالي مناسب لسجلات آخر 30 يومًا
هنا ، لقد استخدمت جدول المراجعة و review_date
هو عمود من جدول المراجعة
SELECT * FROM reviews WHERE DATE(review_date) >= DATE(NOW()) - INTERVAL 30 DAY