SQL Server 2016-动态日期为期四周星期六至星期五

如何解决SQL Server 2016-动态日期为期四周星期六至星期五

我正在使用sql Server 2016 我需要两列填充日期。

第一栏: 可以说今天是2020年11月4日星期三。我想要的日期是从上周五(在这种情况下为10/30/2020)到周六的四个星期(即10/3/2020)

第二列: 在下一列中,我希望该周的星期五日期重复整周,因此该列应具有四个不同的日期。

它应该看起来像这样。

calDate     WeekendDate
10/3/2020   10/9/2020
10/4/2020   10/9/2020
10/5/2020   10/9/2020
10/6/2020   10/9/2020
10/7/2020   10/9/2020
10/8/2020   10/9/2020
10/9/2020   10/9/2020
10/10/2020  10/16/2020
10/11/2020  10/16/2020
10/12/2020  10/16/2020
10/13/2020  10/16/2020
10/14/2020  10/16/2020
10/15/2020  10/16/2020
10/16/2020  10/16/2020
10/17/2020  10/23/2020
10/18/2020  10/23/2020
10/19/2020  10/23/2020
10/20/2020  10/23/2020
10/21/2020  10/23/2020
10/22/2020  10/23/2020
10/23/2020  10/23/2020
10/24/2020  10/30/2020
10/25/2020  10/30/2020
10/26/2020  10/30/2020
10/27/2020  10/30/2020
10/28/2020  10/30/2020
10/29/2020  10/30/2020
10/30/2020  10/30/2020

更新

下面的代码为我提供了第一列,我需要获取填充第二列的逻辑。在获取该相关日期的星期五日期方面需要帮助。

注意:在这种情况下,一周是从星期六到星期五


IF OBJECT_ID('tempdb..#DATE1') IS NOT NULL
BEGIN
DROP TABLE #DATE1 
END;

DECLARE @tmpDates1 TABLE (calDate DATETIME)
DECLARE @beginDate DATETIME
SET @beginDate = DATEADD(wk,DATEDIFF(wk,GETDATE())-5,5)
WHILE @beginDate < DATEADD(wk,GETDATE())-1,5)
BEGIN
    INSERT INTO @tmpDates1 ([calDate]) VALUES (@beginDate)
    SET @beginDate = DATEADD(DAY,1,@beginDate)
END


SELECT * iNTO #date1 FROM @tmpDates1

select * from #date1

解决方法

为此,您需要一个日期作为比较。举一个例子:

DECLARE @CompFriday DATE = '2020-01-03'

DECLARE @t TABLE(
  MyDate DATE
)

INSERT INTO @t VALUES
('2020-11-04'),('2020-11-05'),('2020-11-06'),('2020-11-07'),('2020-11-08'),('2020-11-09'),('2020-11-10'),('2020-11-11')

SELECT *,DATEADD(d,-1 * DATEDIFF(d,@CompFriday,MyDate)%7,MyDate)
  FROM @t

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?