sql - 将星期四和星期三作为 SQL Server 一周的开始和结束日期
问题描述
我在将一周的开始日期和结束日期转换为周四和周三转换为 SQL Server 时遇到了一些困难。
我已经想出一个代码来提取每周的星期四和星期三
SELECT DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), 3) ThursdayOfCurrentWeek
但是问题是当前星期四的一周开始应该是本身,但代码返回上周的星期四。
例如,最好应该是:
29/09/2021 (23/09/2021-29/09/2021);
30/09/2021 (30/09/2021-06/09/2021)
但 SQL 会返回:
29/09/2021 (23/09/2021-29/09/2021);
30/09/2021 (23/09/2021-29/09/2021)
有没有办法我可以做到这一点?
解决方案
..小提琴..
select
_date, datename(weekday, _date) _dateweekday,
prvthursday, datename(weekday, prvthursday),
cast(prvthursday as date) as week_start, cast(dateadd(day, 6, prvthursday) as date) as week_end
from
(
select *, dateadd(day, -(7+datepart(weekday, dateadd(day, @@datefirst, _date))-5/*<-- prev thursday:5, prev sat:7, prev monday:2 etc*/)%7, _date) as prvthursday
from
(
--dates
select dateadd(day, row_number() over(order by @@spid), '20210101') as _date
from sys.all_objects
) as d
) as src;
推荐阅读
- asp.net - 一种防止在多行文本框中重复输入的方法
- ios - 如何避免在表格视图中突出显示两个单元格?
- xamarin - Java.Net.SocketException:recvfrom 失败:Xamarin 表单中的 ECONNRESET
- c++ - qt - 在具有不同父级的类中的对象之间发送信号
- python-3.x - ffmpeg 将一张图片转换为视频
- vb.net - WebBrowser顶部具有透明背景的图片框
- php - php相对路径失败
- c - 如何在c中使用strcat连接char指针?
- java - 使用 Spring RestTemplate 忽略使用 @JsonProperty 声明的 JSON 属性案例
- android - Android 错误:“文件 'root/res/drawable-mdpi/popup_bottom_medium.9.png' 使用保留文件或目录名称 'res'。”