SQL 如何选择30天的数据?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/16645973/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
How to select data from 30 days?
提问by Alex N
I have query:
我有疑问:
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
But DATE_SUBis a MySQL function and I need function for MsSQL 2008
但是DATE_SUB是一个 MySQL 函数,我需要 MsSQL 2008 的函数
Tell me please how to select data from 30 days by using MsSQL 2008?
请告诉我如何使用 MsSQL 2008 从 30 天中选择数据?
P.S.: Data type of datetimeis smalldatetime
PS:日期时间的数据类型 是smalldatetime
回答by Raab
You should be using DATEADD
is Sql server so if try this simple select you will see the affect
您应该使用的DATEADD
是 Sql 服务器,因此如果尝试这个简单的选择,您将看到影响
Select DATEADD(Month, -1, getdate())
Result
结果
2013-04-20 14:08:07.177
in your case try this query
在你的情况下试试这个查询
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
回答by Anvesh
Try this : Using this you can select date by last 30 days,
试试这个:使用这个你可以选择过去 30 天的日期,
SELECT DATEADD(DAY,-30,GETDATE())
回答by maikelsabido
For those who could not get DATEADD to work, try this instead: ( NOW( ) - INTERVAL 1 MONTH )
对于那些不能让 DATEADD 工作的人,试试这个:( NOW( ) - INTERVAL 1 MONTH )
回答by Jonatan Dragon
Short version for easy use:
易于使用的简短版本:
SELECT *
FROM [TableName] t
WHERE t.[DateColumnName] >= DATEADD(month, -1, GETDATE())
DATEADD
and GETDATE
are available in SQL Server starting with 2008 version.
MSDN documentation: GETDATEand DATEADD.
DATEADD
并且GETDATE
在 SQL Server 2008 版本开始可用。MSDN 文档:GETDATE和DATEADD。