在过去30天内获取两次数据

时间:2016-06-08 15:27:59

标签: sql-server

我有一个查询来提取过去30天的数据,我正在使用此功能

DATEADD(day, -30, GETDATE())

我正在获取数据,但它看起来像是缺少一些像当我查看特定日期的数据时,它不包括我遗漏的所有24小时数据。我需要数据包含过去30天内每天24小时的数据。

select 
    *
from 
    Travel R
where 
    R.s9_date > CONVERT(date, DATEADD(day, -30, GETDATE())) 
order by 
    R.s9_date

由于

2 个答案:

答案 0 :(得分:1)

GETDATE()返回一个日期时间,其中包括小时,分钟,秒等。因此,当您从中减去30天时,减去的值也将包含时间部分。

假设您使用的是SQL Server 2008或更高版本,可以通过使用CONVERT函数包装DATEADD函数将日期时间转换为日期:

CONVERT(date, DATEADD(day, -30, GETDATE()))

答案 1 :(得分:0)

我相信在SQL Server 2005中引入了CAST

select
    *
from
    Travel R
where
    R.s9_date > CAST(DATEADD(DAY, -30, GETDATE()) AS DATE)
order by
    R.s9_date
相关问题