zoukankan      html  css  js  c++  java
  • sqlserver:某年份某月份 是否在某时间段内的函数

    如题:今日碰到这个问题,比较郁闷,干脆自己写了个函数

    代码
    -- 
    --
     IF OBJECT_ID (N'f_dtbj') IS NOT NULL
    --
     DROP FUNCTION f_dtbj
    --
     GO

    create function f_dtbj(@year int,@month int,@dt1 datetime,@dt2 datetime)
    returns  int 
    as 
    begin

       
    declare @dt DateTime
       
    declare @dtDay int
       
    set @dt=convert(datetime,convert(varchar,@year)+'-'+convert(varchar,@month)+'-1')

       
    select @dtDay=day(dateadd(dd,-1,cast(convert(varchar(6),dateadd(mm,1,@dt),112)+'01' as datetime))) 
        

       
    declare @inx int
       
    declare @k int
       
    declare @x1 int
       
    declare @x2 int
       
    set @k=1

       
    while(@k<=@dtDay)
          
    begin
          
    set @dt=convert(datetime,convert(varchar,@year)+'-'+convert(varchar,@month)+'-'+convert(varchar,@k))
          
    select @x1=datediff(month,@dt1,@dt)
          
    select @x2=datediff(month,@dt,@dt2)
          
    if @x1>=0 and @x2>=0 --在时间段里
              begin
              
    set @k=@dtDay+1 --跳出
              set @inx= 1
              
    end
          
    else
              
    begin
              
    set @k=@k+1
              
    set @inx=0
              
    end
          
    end

       
    return @inx
    end
  • 相关阅读:
    特殊字符,如Emoji表情Base64存储到数据库
    判断文本文件的编码
    很多.net 程序员不知道又非常重要的 .net高级调试技巧.调试别人的dll方法内的变量
    没想到你是这样的Linux
    PDF转成txt
    生成云图
    Data collection (imaging)
    Python Conda 软件包升级
    电镜作业2的脚本版本
    电镜作业2
  • 原文地址:https://www.cnblogs.com/kingeric/p/1841151.html
Copyright © 2011-2022 走看看