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

前端之家收集整理的这篇文章主要介绍了获取最近的星期五的日期SQL前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在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的任何设置工作.

原文链接:https://www.f2er.com/mssql/81768.html

猜你在找的MsSQL相关文章