【发布时间】:2017-05-02 18:04:56
【问题描述】:
我正在使用最新的 SQL Server。我有一个带有 CreatedDate 列的表。我需要编写一个查询,该查询使用与 CreatedDate 中的日期相差 7 的日期。我不知道该怎么做。我的想法是这样的:
DECLARE @Date datetime
DECLARE @SevenBefore datetime
DECLARE @SevenAfter datetime
SET @Date = CreatedDate
SET @SevenBefore = DATEADD(day,-7,@Date)
SET @SevenAfter = DATEADD(day,7,@Date)
SELECT *
FROM <table>
WHERE <table> BETWEEN @SevenBefore AND @SevenAfter
问题在于我不能使用“CreatedDate”作为 SET @DATE,因为 SQL 给出了错误“Invalid column name 'CreatedDate'”
任何帮助将不胜感激。我无法列出日期,因为该列中的每个日期都可能不同。
谢谢
【问题讨论】:
-
你在哪里得到创建日期?如果您使用表中的列值,为什么还要麻烦做 +/- 7?你能给出一些背景吗?它在不同的表中吗?
-
这是一个很好的起点。 spaghettidba.com/2015/04/24/…
-
你的查询甚至没有意义。是
SELECT * FROM <table> WHERE <table>.CreatedDate BETWEEN @SevenBefore AND @SevenAfter...?您想将<table>中的哪个字段限制在此日期范围内?
标签: sql-server date dateadd