选择上一个日期的所有行

时间:2014-01-03 16:38:08

标签: sql-server reporting-services reporting

我正在尝试创建一个SQL查询(转换为SSRS报告),它将获取前一天打开的所有内容。这必须每天自动运行,因此手动输入日期将不是一个选项。

3 个答案:

答案 0 :(得分:5)

最安全(就基础数据类型的更改或隐式转换而言)和最有效(就使用索引寻找的最佳机会而言)是开放式范围:

WHERE datetime_column >= DATEADD(DAY, DATEDIFF(DAY, 1, GETDATE()),0)
  AND datetime_column <  DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()),0);

有关详细信息,请参阅:

答案 1 :(得分:1)

WHERE CAST(DATE_Column AS DATE) = CAST(DATEADD(DAY, - 1, GETDATE()) AS DATE)

答案 2 :(得分:0)

select DATEADD(DD,-1,getDate()) as Yesterday

select * from <table> where date_in_question = DATEADD(DD,-1,getDate())

如果您只需要日期,请执行此操作

declare @yesterday as Date

set @yesterday = cast(DATEADD(DD,-1,getDate()) as Date)

select * from <table> where date_in_question = @yesterday