我有疑问:
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个月)