加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

获取最近的星期五的日期SQL

发布时间:2020-12-12 16:40:00 所属栏目:MsSql教程 来源:网络整理
导读:我试图在SQL Server 2008中获得最新的星期五. 我有这个.它将在星期一开始(星期一),然后减去3天到达星期五. declare @recentFriday datetime = DATEADD(ww,DATEDIFF(dd,GETDATE()),0)-3 当这个星期运行时,它得到上周五的日期是正确的.但是当星期五(或星期六)运
我试图在SQL Server 2008中获得最新的星期五.

我有这个.它将在星期一开始(星期一),然后减去3天到达星期五.

declare @recentFriday datetime =  DATEADD(ww,DATEDIFF(dd,GETDATE()),0)-3

当这个星期运行时,它得到上周五的日期是正确的.但是当星期五(或星期六)运行时,它仍然是上周的日期,而不是当周的星期五.我要使用if / else条件,但我确定有一个更简单的方法.

解决方法

这适用于DATEFIRST的任何输入和任何设置:
dateadd(d,-((datepart(weekday,getdate()) + 1 + @@DATEFIRST) % 7),getdate())

它可以通过调整工作日值来实现,以便0 =星期五,模拟星期五作为一周的开始.然后减去平均值,如果非零,以获得最近的星期五.

编辑:更新为DATEFIRST的任何设置工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读