sql - 如果开始日期在一个月 SQL 中为 'Week Number',如何从日期中提取 'Day Number' 和 'Monday'

标签 sql sql-server datetime

我正在从一个日期中提取以下内容:

周数 天数

我一周的开始日是星期一。

例如日期是:“2019 年 5 月 1 日”或“2019-05-01”

然后

周数 = 1 天数 = 3

因为这一天是 2019 年 5 月 1 日,星期三。

我正在使用 MS SQL Server 2012。 并使用以下来自网络的代码来获取周数。 我从中得到了周数,但我不明白它到底在做什么。

select datediff(week, dateadd(week, datediff(week, 0, dateadd(month, datediff(month, 0, @date), 0)), 0), @date - 1) + 1

谁能给我解释一下并告诉我如何提取日期。

最佳答案

此选择将为您提供@date 星期几(1:星期一,7:星期日),无论您的@@DATEFIRST 集MS Doc 是什么。 :

select (DATEPART(DW, @date) + @@DATEFIRST + 5) % 7 + 1 as [Day of Week]

关于sql - 如果开始日期在一个月 SQL 中为 'Week Number',如何从日期中提取 'Day Number' 和 'Monday',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56205858/

相关文章:

PHP DateTime::modify 加减月份

sql-server - SSRS - Visual Studio - 如何使用现有的共享数据源

java - 简单日期格式,解析异常

SQL Server : cannot create index on view because it references derived table.

php - 奇怪的 pdo sql 更新行为

sql - 仅允许 10 个字符串 "username"实例的约束

sql - String_Split 多列

c# - 如何在 DateTime.ParseExact 中使用 IFormatProvider

c# - LINQ 到 SQL : Selecting Name (string) by id (smallint)

sql - MySql,我如何分组,在正面或负面的选择查询中?