首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从一周一天开始

如何从一周一天开始
EN

Stack Overflow用户
提问于 2018-11-30 09:48:25
回答 4查看 198关注 0票数 3

在SQL server中,我可以每天使用select来获取数据,但是现在我想根据“今日”来选择每周所有的最后一个工作日a。它的意思是,当今天是星期五,那么我需要在特定时期的整个星期五。

这是我的预期(今天: 2018/30/11):

代码语言:javascript
复制
2018/30/11
2018/23/11
2018/16/11
2018/9/11
2018/2/11
2018/26/10
2018/19/10
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-11-30 09:58:04

假设您的预期结果中的最后2行来自10月,下面是如何获得这些结果的方法:

代码语言:javascript
复制
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。然后,将这个星期数添加到当前日期,以获得所需的结果。

票数 4
EN

Stack Overflow用户

发布于 2018-11-30 09:54:53

我想你想用不超过7天的日期来检索记录。这应该能起作用:

代码语言:javascript
复制
SELECT *
WHERE YourDateColumn >= DATEADD(DAY,-7,GETDATE())
票数 3
EN

Stack Overflow用户

发布于 2018-11-30 11:00:25

希望这能有所帮助。其中开始日期和结束日期是您希望在

代码语言:javascript
复制
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 #temp
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53555004

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档