在SQL server中,我可以每天使用select来获取数据,但是现在我想根据“今日”来选择每周所有的最后一个工作日a。它的意思是,当今天是星期五,那么我需要在特定时期的整个星期五。
这是我的预期(今天: 2018/30/11):
2018/30/11
2018/23/11
2018/16/11
2018/9/11
2018/2/11
2018/26/10
2018/19/10发布于 2018-11-30 09:58:04
假设您的预期结果中的最后2行来自10月,下面是如何获得这些结果的方法:
select DATEADD(week, Numbers.Number, cast(getdate() as date))
from (values(0), (-1), (-2), (-3), (-4), (-5), (-6)) Numbers(Number)
order by 1 desc使用表值构造器,我们得到一个表Numbers,其中有一个列Number,值从0到-6。然后,将这个星期数添加到当前日期,以获得所需的结果。
发布于 2018-11-30 09:54:53
我想你想用不超过7天的日期来检索记录。这应该能起作用:
SELECT *
WHERE YourDateColumn >= DATEADD(DAY,-7,GETDATE())发布于 2018-11-30 11:00:25
希望这能有所帮助。其中开始日期和结束日期是您希望在
DECLARE @weeks INT,
@start_date DATETIME = '2018/10/01',
@end_date DATETIME = '2018/11/30',
@date DATETIME,
@day INT = 7
CREATE TABLE #temp (result_date DATETIME)
SELECT @weeks = DATEDIFF(week, @start_date, @end_date)
SELECT @weeks
WHILE @weeks <> 0
BEGIN
SET @day = @day + 7
INSERT INTO #temp
SELECT dateadd(day, -@day, GETDATE())
SET @weeks = @weeks - 1
END
SELECT * FROM #temphttps://stackoverflow.com/questions/53555004
复制相似问题