Подтвердить что ты не робот

Получить последние 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.

4b9b3361

Ответ 1

Добавьте еще одно условие в 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 

Ответ 2

Вы можете использовать DateDiff для этого. Предложение where в вашем запросе будет выглядеть следующим образом:

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

Ответ 3

Я не знаю, почему все эти сложные ответы здесь, но это то, что я сделал бы

where pdate >= CURRENT_TIMESTAMP -30

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

Ответ 4

Это должно работать нормально

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

Ответ 5

Ниже запрос подходит для последних 30 дней записи

Здесь я использовал обзорную таблицу, а review_date - это столбец из обзорной таблицы.

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

Ответ 6

Вы можете использовать это для получения данных за последние 30 дней на основе столбца.

WHERE DATEDIFF (dateColumn, CURRENT_TIMESTAMP) МЕЖДУ 0 И 30