我有一个查询来提取过去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
由于
答案 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