sql - 获取一周的第一天 T-SQL
问题描述
如何获得一周的第一天(星期一),其中周 = 6 和年 = 2020 我需要得到 10.02.2020
例如。2020 年第 1 周的日期为 06.01.2020 - 12.01.2020 2020 年第 6 周的日期为 10.02.2020 - 16.02.2020
解决方案
DateFirst
无论or的设置如何,以下代码都将获取给定日期的一周中的星期一日期Language
:
Cast( DateAdd( day, - ( @@DateFirst + DatePart( weekday, Datum ) - 2 ) % 7, Datum ) as Date )
示例数据示例:
with SampleData as (
select GetDate() - 30 as Datum
union all
select DateAdd( day, 1, Datum )
from SampleData
where Datum < GetDate() )
select Datum,
-- 1 = Monday through 7 = Sunday.
( @@DateFirst + DatePart( weekday, Datum ) - 2 ) % 7 + 1 as WeekDay,
-- Date of Monday in the week of the supplied date.
Cast( DateAdd( day, - ( @@DateFirst + DatePart( weekday, Datum ) - 2 ) % 7, Datum ) as Date ) as Monday
from SampleData;
推荐阅读
- windows - “抱歉,此文件无效,无法显示。” 在 GIthub 上使用 pdf 文件
- xcode - 如何在cordova项目中通过config.xml更改ios xcode“Packaging”->“Product Name”?
- reactjs - 每个组件的 useHistory 默认值
- fabricjs - 如何在没有settimeout的情况下制作多步fabric.js动画?
- ldap - LDAP 和用户服务是否相同?
- flutter - 解析来自 API 调用的响应
- mysql - 如何在 MySQL 中创建列而不是连接字符串?
- c - How to convert a char string into int string?
- ios - 使用参数请求数据 Alamofire SwiftUI
- typescript - 如何从另一个文件打字稿中导入打字数据和功能?