如何从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())
DATEADD
和GETDATE
在2008 Server版本的SQL Server中可用。 MSDN文档:GETDATE和DATEADD。
以上是关于如何从30天内选择数据?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Oracle SQL 中仅选择最近 30 天内第一次在表中显示的这些 ID?