【问题标题】:Get week number starting from monday from 04:00 am in the year从一年中的星期一凌晨 04:00 开始获取周数
【发布时间】:2020-04-07 06:04:17
【问题描述】:

我使用此代码,但从星期日开始获得一周。

Select DATEPART(week,s.Calculationdate) weeknumber, s.Calculationdate
FROM sales.orders s
WHERE s.Calculationdate >= '2020-01-01 04:00:00' and s.Calculationdate < '2020-05-01 04:00:00'
AND s.Calculationdate< CAST(CONVERT(VARCHAR, GETDATE(),23) + '04:00:00' AS datetime)

【问题讨论】:

    标签: sql-server tsql week-number


    【解决方案1】:

    使用DATEPART,您可以使用WEEKISO_WEEK

    SELECT DATEPART(WEEK,'2020-04-05')
    SELECT DATEPART(ISO_WEEK,'2020-04-05')
    

    您可以通过以下方式获得更多的控制设置:一周的第一天:

    SELECT @@DATEFIRST
    SET DATEFIRST 1; -- day of a week
    SELECT @@DATEFIRST
    

    【讨论】:

    • 谢谢,ISO_WEEK 给了我所需的结果。你能再帮我一次吗,。如何使用 ISO_WEEK 的时间,我希望我的日子从 04:00:00 开始,像这样从 2020-01-01 04:00:00 到 2020-01-02 04:00:00
    • 好的,有什么问题?
    • 如何使用 ISO_WEEK 的时间,我希望我的日子从 04:00:00 开始,像这样从 2020-01-01 04:00:00 到 2020-01-02 04 :00:00
    • 您能分享一些示例数据和所需的输出吗?此外,您为什么需要这个 - 这就像改变一天 24 小时的定义方式一样。
    • 我需要 UTC+0,这就是为什么我需要我的日子从 04:00:00 开始。我的意思是我想要这样的 week_number-1。当我有如下日期时 Calculationdate- 2020-01-06 03:15:37
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 2019-11-20
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多