@@datefirst+datepart(weekday,@dt_begin)%7 between 1 and 5
在邹老大的书上看到这个表达式,不明白,请高手指教

解决方案 »

  1.   

    @@datefirst+datepart(weekday,@dt_begin)%7 between 1 and 5
    在邹老大的书上看到这个表达式,不明白,请高手指教
    -------------------------------
    等同于:
    @dt_begin between 星期一 and 星期五
      

  2.   

    @@DATEFIRST
     返回类型
    tinyint 备注
    SET DATEFIRST 表示指定的每周的第一天。美国英语中默认 7 对应星期日。语言设置会影响日期信息。在以下示例中,语言首先设置为 italian。SELECT @@DATEFIRST 将返回 1。然后将语言设置为 us_english。SELECT @@DATEFIRST 将返回 7。
    //
      

  3.   

    判断@dt_begin是否在星期一到星期五之间
      

  4.   

    @@DATEFIRST
    返回 SET DATEFIRST 参数的当前值,SET DATEFIRST 参数指明所规定的每周第一天:1 对应星期一,3 对应星期三,依此类推,用 7 对应星期日。语法
    @@DATEFIRST返回类型
    tinyint注释
    美国英语中默认 7 对应星期日。
      

  5.   

    datepart(weekday,@dt_begin)返回对应于星期中的某天的数,例如:Sunday = 1、Saturday = 7。weekday 日期部分产生的数取决于 SET DATEFIRST 设定的值,此命令设定星期中的第一天。
      

  6.   

    DATEPART ( datepart , date ) 
     参数
    datepart 
    指定要返回的日期部分的参数。有关详细信息,请参阅本主题后面的“备注”部分。日期部分  缩写  
    年份 
     yy、yyyy 
     
    季度 
     qq、q 
     
    月份 
     mm、m 
     
    每年的某一日 
     dy、y 
     
    日期 
     dd、d 
     
    星期 
     wk、ww 
     
    工作日
     dw
     
    小时 
     hh 
     
    分钟 
     mi、n 
     
    秒 
     ss、s 
     
    毫秒 
     ms 
     
      

  7.   

    @@datefirst+datepart(weekday,@dt_begin)%7 between 1 and 5
    大家解释一下他的算法不是说语法
      

  8.   

    @@datefirst  --获取设置的每周的第一天是哪一天
    +datepart(weekday,@dt_begin)%7  ---@dt_begin在一周之中是第几天 
     between 1 and 5  ---在星期一到星期五之间
      

  9.   

    datepart(weekday,@dt_begin)%7这个是乎没有必要.
    datepart(weekday,@dt_begin)的结果本来就是1-7中的整数.
      

  10.   

    我晕,代码是错的哦。如果是要判断日期是否在星期一至五的范围,这样才对:if (@@datefirst-1+datepart(weekday,@dt_begin))%7 between 1 and 5
    --yes
    else
    --no