zoukankan      html  css  js  c++  java
  • 获取某一天所在周的开始日期和结束日期

    指定一个日期,获取其所属周的开始日期和结束日期。以及前一周和后一周的开始日期和结束日期。

    Insus.NET把这个功能写成一个自定义函数Table-values Functions。

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    
    -- =============================================
    -- Author:      Insus.NET
    -- Create date: 2019-05-10
    -- Update date: 2019-05-10
    -- Description: 获取指定日期相关周的数据
    -- =============================================
    
    CREATE FUNCTION [dbo].[tvf_WeekDatas]
    (
        @SpecifiedDate DATETIME
    )
    RETURNS @dumpWeekTable TABLE
    (
        [Week] NVARCHAR(MAX) NOT NULL,
        [First Date] DATETIME NULL,
        [Last Date] DATETIME NULL
    )
    AS
    BEGIN    
        INSERT INTO @dumpWeekTable ([Week]) VALUES ('Previous Week'),('Current Week'),('Next Week')
        
        DECLARE @dd INT = DATEDIFF(dd, 0,@SpecifiedDate)
        DECLARE @WEEKDAY INT = DATEPART(WEEKDAY, @SpecifiedDate)
    
        DECLARE @FD INT = 1 - @WEEKDAY
        DECLARE @LD INT = 0 - @WEEKDAY
    
        DECLARE @FirstDate DATETIME = DATEADD(DAY, @FD, @dd)
        DECLARE @LastDate DATETIME = DATEADD(DAY, @LD, @dd)
        
        UPDATE @dumpWeekTable SET [First Date] = DATEADD(wk, -1,@FirstDate), [Last Date] = DATEADD(wk, 0,@LastDate) WHERE [Week] = 'Previous Week'
        UPDATE @dumpWeekTable SET [First Date] = DATEADD(wk, 0,@FirstDate), [Last Date] = DATEADD(wk, 1,@LastDate) WHERE [Week] = 'Current Week'
        UPDATE @dumpWeekTable SET [First Date] = DATEADD(wk, 1,@FirstDate), [Last Date] = DATEADD(wk, 2,@LastDate) WHERE [Week] = 'Next Week'
    
        RETURN
    END
    Source Code

    如何使用上面这个函数,列举例子说明:

  • 相关阅读:
    Kafka简单使用
    mvn 打包和启动jar包
    一次去大华Java面试题
    springboot注解与xml配置对应关系
    javascript语法参考
    一个好用的在线java反编译工具
    centos7安装docker1.31
    象棋博客
    eclipse自动补全快捷键设置
    sql server 锁机制
  • 原文地址:https://www.cnblogs.com/insus/p/10843667.html
Copyright © 2011-2022 走看看