回答

收藏

获取最近的星期五日期SQL

技术问答 技术问答 251 人阅读 | 0 人回复 | 2023-09-14

我正在尝试获取SQL Server 2008中的最新星期五。
1 T7 X1 Y8 X" V9 J$ D; T1 m我有这个。它获取一周的开始时间(星期一),然后减去3天即可得出星期五。, E) F0 ?: W/ t: ]4 a
declare @recentFriday datetime =  DATEADD(ww, DATEDIFF(dd,0,GETDATE()), 0)-3
. Z, D2 H3 v, V3 A+ w9 m8 ~5 O在一周中运行此命令时,它将获得上周五的正确日期。但是,在星期五(或星期六)运行时,它仍然是上周的日期,而不是当前星期的星期五。我将使用if /
( F6 S' s) g5 T* X* _! i3 q+ celse条件,但是我敢肯定有一种更简单的方法。, C) e9 o, g- g7 E1 F+ ^+ H
                9 }. K7 q8 u  C
解决方案:! _* f8 E! u/ ?8 V" u0 b0 I
                % U% ~  e7 _1 ~* D
( V: e! W- F" y

/ g- r' b( T4 [2 c2 w# t8 Q5 B                这适用于以下任何输入和任何设置DATEFIRST:( n' f+ D4 n7 B0 m7 I% B' E
dateadd(d, -((datepart(weekday, getdate()) + 1 + @@DATEFIRST) % 7), getdate())8 N; @! H/ N" y8 w5 K
通过将工作日值调整为0 =星期五,将星期五模拟为一周的开始来工作。然后减去非零的工作日值以获取最近的星期五。
3 B8 r* ^& W' a编辑 :已更新,可用于的任何设置DATEFIRST。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则