如何从30天内选择数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从30天内选择数据?相关的知识,希望对你有一定的参考价值。

我有疑问:

SELECT name
FROM (
SELECT name FROM 
Hist_answer
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
UNION ALL
SELECT name FROM 
Hist_internet
WHERE id_city='34324' AND datetime >= DATE_SUB(CURRENT_DATE, INTERVAL 1 MONTH)
) x
GROUP BY name ORDER BY name

但DATE_SUB是一个mysql函数,我需要MsSQL 2008的功能

请告诉我如何使用MsSQL 2008从30天中选择数据?

P.S。:日期时间的数据类型是smalldatetime

答案

你应该使用DATEADD是Sql server,所以如果尝试这个简单的选择,你会看到影响

Select DATEADD(Month, -1, getdate())

结果

2013-04-20 14:08:07.177

在您的情况下尝试此查询

SELECT name
FROM (
SELECT name FROM 
Hist_answer
WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE())
UNION ALL
SELECT name FROM 
Hist_internet
WHERE id_city='34324' AND datetime >= DATEADD(month,-1,GETDATE())
) x
GROUP BY name ORDER BY name
另一答案

试试这个:使用这个你可以选择最近30天的日期,

SELECT DATEADD(DAY,-30,GETDATE())
另一答案

对于那些无法让DATEADD工作的人,请尝试这样做:(现在() - 间隔1个月)

另一答案

简易版使用方便:

SELECT * 
FROM [TableName] t
WHERE t.[DateColumnName] >= DATEADD(month, -1, GETDATE())

DATEADDGETDATE在2008 Server版本的SQL Server中可用。 MSDN文档:GETDATEDATEADD

以上是关于如何从30天内选择数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Oracle SQL 中仅选择最近 30 天内第一次在表中显示的这些 ID?

如何返回从当前日期开始最近 7 天内添加到数据库的所有记录

选择在 30 天内每周至少玩 2 次或更多时间的唯一用户。 (SQL/BigQuery)

如何从设置中获取数据并发送到此片段

创建Sharepoint过滤器以显示30天内到期的文档

谈一谈|数据分析-30天内阅读数据的分析结果