select dateadd(day, 2-datepart(weekday,DATEADD(S,Submit_Date,'1970-01-01 08:00:00')),DATEADD(S,Submit_Date,'1970-01-01 08:00:00')) as '周一'
from HPD_Help_Desk这是求当前日期周一的sql语句,求问参数内是啥意思

解决方案 »

  1.   


    SELECT DATEADD(wk,  DATEDIFF(wk,0,getdate()),  0)
    参数 就是函数上面要求传什么,比如fun(int a) 那么参数a是整型,调用时就是可以f(10),f(2) 这样
      

  2.   


    -- 楼主比较一下这三个值
    select 
    getdate() [current_date], 
    datepart(weekday,getdate()) [current_weekday], 
    dateadd(day,datepart(weekday,getdate())-7 + 1,getdate()) [current_mondy]
    current_date            current_weekday current_mondy
    ----------------------- --------------- -----------------------
    2016-11-23 19:17:55.357 4               2016-11-21 19:17:55.357(1 行受影响)
      

  3.   

    这段SQL应该取得DATEADD(S,Submit_Date,'1970-01-01 08:00:00') 日期所在周的周一的日期但要注意对于datepart(weekday,  要考虑@@DATEFIRST默认@@DATEFIRST=7.这个逻辑成立
    方式,计算日期是周几,然后倒退到周一        SELECT  dateadd( day,  2-datepart(weekday,GETDATE()), GETDATE()) as '周一'
    --2016-11-21 17:48:20.637        SET DATEFIRST  1
            SELECT  dateadd( day,  2-datepart(weekday,GETDATE()), GETDATE()) as '周一'
    --2016-11-22 17:51:26.013  (实际是周二了)
      

  4.   

    SQL日期函数