zoukankan      html  css  js  c++  java
  • sqlserver中获取本周记录

    sqlserver中获取本周记录,由于西方以周日作为本周的第一天,中国传统以周一作为本周的第一天,所以在查询的时候需要做特殊处理

    首先:创建一个标量函数

    CREATE FUNCTION [dbo].[GETWEEKNUMBER](@DATE DATETIME)  
    RETURNS INTEGER
    AS
    BEGIN 
    
        DECLARE @FIRST_DATE_OF_YEAR DATETIME = DATEADD(YYYY,DATEDIFF(YYYY,0,@DATE),0) 
        -- DECLARE @MONDAY_OF_WEEK DATETIME = DATEADD(WK,DATEDIFF(WK,0,@DATE),0) 
        -- DECLARE @PREVIOUS_DATE DATETIME = DATEADD(DAY,-1,@DATE)
        DECLARE @WEEK_NUMBER INTEGER
    
        -- 如果当前时间是当前年的第一天
        IF @DATE = @FIRST_DATE_OF_YEAR
            SET @WEEK_NUMBER = 1 
        -- 星期天是年第一天的情况
        ELSE IF (DATEPART(WEEKDAY,@DATE) = 1 AND DATEDIFF(DAYOFYEAR,@FIRST_DATE_OF_YEAR,@DATE)/7 + 1 = DATEPART(WEEK,@DATE))  
            SET @WEEK_NUMBER = DATEPART(WEEK,@DATE)  
        -- 星期天不是年第一天的情况
        ELSE IF (DATEPART(WEEKDAY,@DATE) = 1 AND DATEDIFF(DAYOFYEAR,@FIRST_DATE_OF_YEAR,@DATE)/7 + 1 <> DATEPART(WEEK,@DATE)) 
            SET @WEEK_NUMBER = DATEPART(WEEK,@DATE) - 1 
        -- 如果当前天的上一个周日小于年第一天
        ELSE IF DATEADD(DAY,-1,DATEADD(WK,DATEDIFF(WK,0,@DATE),0)) < @FIRST_DATE_OF_YEAR 
            SET @WEEK_NUMBER = 1 
        -- 当前天前面的一个周日正好是以周日为开始年的 7 倍的天数
        ELSE IF DATEDIFF(DAYOFYEAR,@FIRST_DATE_OF_YEAR,DATEADD(DAY,-1,DATEADD(WK,DATEDIFF(WK,0,@DATE),0) ))/7 + 1 = DATEPART(WEEK,@DATE) 
            SET @WEEK_NUMBER = DATEPART(WEEK,@DATE) + 1  
        ELSE 
            SET @WEEK_NUMBER = DATEPART(WEEK,@DATE)   
               
        RETURN @WEEK_NUMBER
    END
    
    GO
    

      2,接着调用即可

    select Convert(varchar(100),a.STATISTICSDATE,23) as STATISTICSDATE,SUM(a.LATENUM) as LATENUM ,SUM(a.BACKNUM) as BACKNUM ,SUM(a.ABSENTNUM) as ABSENTNUM ,SUM(a.UNCOMENUM) as UNCOMENUM from dbo.BASE_ATTENDANCE a where dbo.GETWEEKNUMBER(GETDATE())=dbo.GETWEEKNUMBER(a.STATISTICSDATE)
    group by Convert(varchar(100),a.STATISTICSDATE,23)

    这样查询出来的就是本周的数据,并且是以周一作为本周第一天

  • 相关阅读:
    Cassandra
    POST和GET方法
    webx流程
    Cassandra的内部数据存储结构
    Session和Cookie
    昆爷又发了4篇siggraph2010,牛A...榜样和目标...
    真正开博了
    ebook搜索,I can! cool!
    (转)计算机图形学的学习
    3D图形学习的现在和将来(转)
  • 原文地址:https://www.cnblogs.com/sharestone/p/10373048.html
Copyright © 2011-2022 走看看