我有疑问:
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
答案 0 :(得分:62)
您应该使用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
答案 1 :(得分:20)
试试这个:使用此功能,您可以选择最近30天的日期,
SELECT DATEADD(DAY,-30,GETDATE())
答案 2 :(得分:11)
对于那些无法让DATEADD工作的人,请尝试这样做:(现在() - 间隔1个月)
答案 3 :(得分:0)