it-swarm.asia

الحصول على سجلات آخر 30 يومًا من تاريخ اليوم في SQL Server

لدي سؤال صغير حول 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

20
user3457912

أضف حالة أخرى في 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 
32
Pரதீப்

يمكنك استخدام DateDiff لهذا الغرض. ستبدو جملة أين في طلب البحث الخاص بك:

where DATEDIFF(day,pdate,GETDATE()) < 31
7
danish

لا أعرف لماذا كل هذه الإجابات المعقدة موجودة هنا ، لكن هذا ما سأفعله

where pdate >= CURRENT_TIMESTAMP -30

OR WHERE CAST(PDATE AS DATE) >= GETDATE() -30

4
josh

يمكنك استخدام هذا للحصول على بيانات آخر 30 يومًا بناءً على عمود.

WHERE DATEDIFF (dateColumn، CURRENT_TIMESTAMP) بين 0 و 30

0
chandra shekar reddy dubba

هذا يجب أن تعمل بشكل جيد

SELECT * FROM product 
WHERE pdate BETWEEN datetime('now', '-30 days') AND datetime('now', 'localtime')
0
Jimit Rupani

الاستعلام التالي مناسب لسجلات آخر 30 يومًا

هنا ، لقد استخدمت جدول المراجعة و review_date هو عمود من جدول المراجعة

SELECT * FROM reviews WHERE DATE(review_date) >= DATE(NOW()) - INTERVAL 30 DAY
0
Pramod Amrutkar