【发布时间】:2014-01-03 16:38:07
【问题描述】:
我正在尝试进行 SQL 查询(将转换为 SSRS 报告),它将获取前一天打开的所有内容。这必须每天自动运行,因此手动输入日期实际上不是一个选项。
【问题讨论】:
-
查看 DateAdd() 负增量
标签: sql-server reporting-services reporting
我正在尝试进行 SQL 查询(将转换为 SSRS 报告),它将获取前一天打开的所有内容。这必须每天自动运行,因此手动输入日期实际上不是一个选项。
【问题讨论】:
标签: sql-server reporting-services reporting
最安全(就基础数据类型的更改或隐式转换而言)和最有效(就使用索引查找的最佳机会而言)是一个开放式范围:
WHERE datetime_column >= DATEADD(DAY, DATEDIFF(DAY, 1, GETDATE()),0)
AND datetime_column < DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()),0);
更多细节见:
【讨论】:
WHERE CAST(DATE_Column AS DATE) = CAST(DATEADD(DAY, - 1, GETDATE()) AS DATE)
【讨论】:
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
【讨论】:
DD这样的懒惰速记。 DAY 只是一个额外的字符,而且更加自我记录。对于一些不直观的惰性速记示例,read this post。