好的,我觉得我应该能够做到这一点,但我搜索无济于事。
我需要根据一年中的哪一天显示两个不同的数据集之一。具体来说,如果今天是 10 月 31 日(或更早),我想提取从去年 10 月 1 日到今年年底的所有条目。如果今天是 10 月 31 日之后,我希望我的数据集显示从当年 10 月 1 日到明年年底的条目。
下面的代码创建了一个简单的“日历”表变量,用于存储特定数据集中存在的所有月份。现在我只是把它限制在当年的日期。我想用代码替换它,以允许它像我上面所说的那样运行。我想过使用 IF 语句,但我无法弄清楚如何仅与 getdate() 日期和月份进行比较。
DECLARE @calendar TABLE
( mon_name VARCHAR(10)
, mon_number INT
, yr INT
)
INSERT INTO @calendar
SELECT DATENAME(m,departure_date)
, MONTH(departure_date)
, YEAR(departure_date)
FROM trip_mission
WHERE departure_date <>'1/1/1900'
AND YEAR(departure_date) = YEAR(getdate())
GROUP BY DATENAME(m,departure_date)
, MONTH(departure_date)
, YEAR(departure_date)
问题的简化形式可能是只有在今天 <= 10 月 31 日时我才能运行一些代码。如果我可以说 <= 2012 年 10 月 31 日,那将非常容易,但我需要它是动态的,以便它会每年翻一次。