SQL Server DATEADD特定的工作日

勒南德斯

因此,我需要在日期中添加一些日期,例如30天,但是30天不能是日历日,它们是取决于背后某些逻辑的参数,因此,我需要找到一种添加日期30的方法例如,星期一至星期三之间的天数:如果我在2月15日前加上30(星期一至星期三)天,则应该是4月26日。如果我在2月15日前加上30(星期日至星期五)几天,则应该是3月17日。

如果情况还不清楚,请让我知道蚂蚁,我会尽力给出更好的解释。

谢谢。

麦克纳斯

首先,我在StartDate和EndDate之间生成了一系列日期,但返回的是“星期几”:

SELECT  DATEPART(weekday, DATEADD(DAY, nbr - 1, @StartDate)) as dow
FROM    (SELECT    ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS Nbr
         FROM      sys.columns c
         )nbrs
WHERE   nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)

然后,您可以使用简单的WHERE IN()选择要包括的星期几,并计算返回的天数。

DECLARE @StartDate DATE = '20170101'
        , @EndDate DATE = '20170131'

SELECT COUNT(*) AS DAYS
FROM (
        SELECT  DATEPART(weekday, DATEADD(DAY, nbr - 1, @StartDate)) as dow
        FROM    (SELECT    ROW_NUMBER() OVER ( ORDER BY c.object_id ) AS Nbr
                 FROM      sys.columns c
                )nbrs
        WHERE   nbr - 1 <= DATEDIFF(DAY, @StartDate, @EndDate)
    ) T1
WHERE DOW IN (3,4,5);

在您的SQL Server中,请注意每周的第一天,您可以使用SET DATEFIRST进行更改

在此处检查:http : //rextester.com/WCLIXM28868

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Sql Server中的给定周数中获取所有工作日?

来自分类Dev

SQL Server:递归函数以获取上一个工作日

来自分类Dev

如何使用日历参考表在SQL Server中从给定日期计算工作日

来自分类Dev

当月的第一个工作日-SQL Server

来自分类Dev

基于SQL Server班次的工作日,周末,公共假日和一天中的时间

来自分类Dev

SQL Server:我需要在周末与工作日以不同的方式处理数据

来自分类Dev

SQL Server 在工作日的 07H00 和 23H00 期间计算

来自分类Dev

工作日SQL查询

来自分类Dev

SQL工作日查询

来自分类Dev

SQL Server PIVOT与dateadd()

来自分类Dev

DATEADD仅工作日

来自分类Dev

SQL仅返回工作日

来自分类Dev

SQL触发日期范围与工作日

来自分类Dev

SQL日期差异工作日

来自分类Dev

SQL仅返回工作日

来自分类Dev

SQL日期差异工作日

来自分类Dev

sql仅在工作日插入数据

来自分类Dev

工作日之间的周末 SQL

来自分类Dev

SQL Server 查询以获取日期范围内所有月份的倒数第二个工作日的列表,其中包括日历中的假期

来自分类Dev

SQL转换为工作日和hh:mm

来自分类Dev

从 Hive SQL 中的日期减去工作日

来自分类Dev

Sql Server - 帮助 Dateadd 函数(转换问题)

来自分类Dev

SQL Server 查询以获取两个日期之间的工作日数,不包括假期

来自分类Dev

计算一个工作日的小时数,该工作日分为2天-Access SQL

来自分类Dev

SQL Server替换功能的工作

来自分类Dev

SQL Server 变量如何工作?

来自分类Dev

SQL Server:此SQL语句如何工作

来自分类Dev

SQL Server:FOR XML特定输出

来自分类Dev

sql通过打开和关闭时间范围来计算工作日的工作时间