从 date/time 字段中选择周/ISO 周数

Selecting week / ISO week number from a date/time field

抱歉 - 这可能是一个基本问题,但我已经为此苦苦思索了一个星期。

我有一个格式为“dd/mm/yyyy hh:mm:ss”的数据库字段,称为 UpdateTime 并引用 max(AuditHistory.ActionedDateTime) 在数据库中。

我试图仅使用 ReportBuilder3 中的数据集从该字段的日期部分识别周/ISO 周。

我正在尝试在名为“WeekNo”的列中实现一个整数条目,为我提供一年中进行交易的那一周,以便我可以使用它按年份对结果进行分组 |按高级管理人员报告中的周数。

我试过很多组合: ,DATEPART(WEEK,DAY(max(AuditHistory.ActionedDateTime)) AS WeekNo,DATEPART(WEEK,MONTH(max(AuditHistory.ActionedDateTime)) AS WeekNo.

如果我使用静态日期,例如, DATEPART(WEEK,DAY('1900-01-20')) AS WeekNo,它 returns 与“4” 完全一样,但我终生无法获得正确的日期部分格式以从字段格式中识别周.

我认为我的问题是让 SQL 接受该字段是“dd/mm/yyyy hh:mm:ss”并根据日期元素计算周数。

在我发疯之前 - 我想我会问是否有一个快速的方法来实现这个。

DATEPART 函数需要一个 date / datetime / datetime2 值。您正在传递一个代表天数或月数的整数。

假设您正确存储了日期,您只需直接传入日期值即可:

DATEPART(WEEK, Max(AuditHistory.ActionedDateTime)) As WeekNo