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