【发布时间】:2011-02-02 11:49:20
【问题描述】:
我的表中有一个字段,其中包含一个日期并且是日期时间格式。
我希望选择该字段中的日期大于当月 1 日之前 40 天的日期的所有记录。
努力想出正确的 T-SQL 语法来做到这一点。
【问题讨论】:
标签: sql-server tsql datetime
我的表中有一个字段,其中包含一个日期并且是日期时间格式。
我希望选择该字段中的日期大于当月 1 日之前 40 天的日期的所有记录。
努力想出正确的 T-SQL 语法来做到这一点。
【问题讨论】:
标签: sql-server tsql datetime
此表达式为您提供您正在寻找的日期:
DATEADD(DAY, -DATEPART(d, GETDATE()) + 1 - 40, GETDATE())
【讨论】:
DAY(...)(而不是 DATEPART(d, ...))更简洁,因为与 DATEADD() 相比,仅减去。
这行得通吗
select @urdatecolumn > (getdate()- (DAY(getdate()) + 40-1))
【讨论】:
... + 40 - 1))。
试试这个
where dt_blah > DATEADD(d,-40,DATEADD(wk, DATEDIFF(wk, 0, dateadd(dd, 6 - datepart(day, dt_blah), dt_blah)), 0)
【讨论】: