【问题标题】:Datepart week start Monday used in a viewDatepart week start Monday 在视图中使用
【发布时间】:2021-03-05 02:36:54
【问题描述】:

我正在尝试在构建视图的 SELECT 查询中使用 DATEPART 函数。 DATEPART 的目的是返回传递给它的日期的周数。我要求一周的开始是星期一和默认值,在我的情况下是星期日。 我无法使用Set DATEFIRST 1,因为我想在视图中使用 Datepart。

例如。让我们使用日期 '2021-01-31' 作为 [Date]

DATEPART(WEEK,DATE) --returns week 6 with @@DATEFIRST = 7
DATEPART(WEEK,DATE) --returns week 5 with @@DATEFIRST = 1

我们将不胜感激所有建议。

【问题讨论】:

标签: sql sql-server


【解决方案1】:

我可以提供这样的解决方案:

declare
    @DATE date='2021-01-31'

select DATEPART(WEEK,@DATE) --returns week 6 with @@DATEFIRST = 7
,DATEPART(WEEK,case when datepart(dw, @DATE)=1 then dateadd(dd, -1, @DATE) else @DATE end) --returns week 5 with @@DATEFIRST = 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多