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

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-01 15:19:27  来源:igfitidea点击:

How to select data from 30 days?

sqlsql-server-2008keywordsmalldatetime

提问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 DATEADDis 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())

DATEADDand GETDATEare available in SQL Server starting with 2008 version. MSDN documentation: GETDATEand DATEADD.

DATEADD并且GETDATE在 SQL Server 2008 版本开始可用。MSDN 文档:GETDATEDATEADD