如何从30天内选择数据?

Ale*_*x N 46 sql keyword smalldatetime sql-server-2008

我有疑问:

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
Run Code Online (Sandbox Code Playgroud)

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

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

PS:日期时间的数据类型 是smalldatetime

Raa*_*aab 63

您应该使用的DATEADD是Sql server,因此如果尝试这个简单的选择,您将看到效果

Select DATEADD(Month, -1, getdate())
Run Code Online (Sandbox Code Playgroud)

结果

2013-04-20 14:08:07.177
Run Code Online (Sandbox Code Playgroud)

在您的情况下尝试此查询

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
Run Code Online (Sandbox Code Playgroud)


Anv*_*esh 23

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

SELECT DATEADD(DAY,-30,GETDATE())
Run Code Online (Sandbox Code Playgroud)


mai*_*ido 11

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