use*_*912 22 sql-server sql-server-2008 sql-server-2008-r2 sql-server-2012
我对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
Run Code Online (Sandbox Code Playgroud)
基于此表数据,我想要输出如下
pdate
-------
2014-11-20
2014-12-12
2014-12-13
2014-11-16
Run Code Online (Sandbox Code Playgroud)
我试过这个查询
SELECT *
FROM product
WHERE pdate >= DATEADD(day, -30, getdate()).
Run Code Online (Sandbox Code Playgroud)
但它现在给出了确切的结果.请告诉我如何在SQL Server中解决此问题
Pரத*_*ீப் 34
添加一个条件 where clause
SELECT * FROM product
WHERE pdate >= DATEADD(day,-30,GETDATE())
and pdate <= getdate()
Run Code Online (Sandbox Code Playgroud)
或者使用 DateDiff
SELECT * FROM product
WHERE DATEDIFF(day,pdate,GETDATE()) between 0 and 30
Run Code Online (Sandbox Code Playgroud)
您可以DateDiff为此使用。查询中的where子句如下所示:
where DATEDIFF(day,pdate,GETDATE()) < 31
Run Code Online (Sandbox Code Playgroud)
我不知道为什么所有这些复杂的答案都在这里,但这就是我要做的
where pdate >= CURRENT_TIMESTAMP -30
Run Code Online (Sandbox Code Playgroud)
或者 WHERE CAST(PDATE AS DATE) >= GETDATE() -30
以下查询适用于最近 30 天的记录
在这里,我使用了评论表,并且review_date是评论表中的一列
SELECT * FROM reviews WHERE DATE(review_date) >= DATE(NOW()) - INTERVAL 30 DAY
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93788 次 |
| 最近记录: |