解决方案 »

  1.   


    DECLARE @d DATETIME
    SET @d='2009/08/01'SELECT 
    CASE 
    WHEN DATEPART(m,@d)=DATEPART(m,GETDATE()) THEN '月份相同'
    ELSE '月份不同'
    END
      

  2.   

    DATEPART详见帮助文档,里面有关于时间具体的比较和缩写
      

  3.   

    DECLARE @d1 datetime
    DECLARE @d2 datetime
    SET @d1 = '2014-08-01'
    SET @d2 = '2014-08-31 23:59:59.999'
    SELECT CASE WHEN Convert(varchar(7),@d1,120) = Convert(varchar(7),@d1,120)
                THEN '同月'
                ELSE '不同月'
           END
      

  4.   

    仅仅是比较 月 ,一次DATEPART就行了
    如果是 年月,需要2次,或转为字符串(121模式)后比较前7个字符
      

  5.   

    判断是否同年同月。select DATEDIFF(MONTH,sysdatetim(),'20140822') 返回0 相同 其他不同。
      

  6.   

    DECLARE @d1 datetime
    DECLARE @d2 datetime
    SET @d1 = '2014-08-01'
    SET @d2 = '2014-08-31 23:59:59.999'
    SELECT CASE WHEN Convert(varchar(7),@d1,120) = Convert(varchar(7),@d1,120)
                THEN '同月'
                ELSE '不同月'
           END
      

  7.   


    --判断年月
    --1
    declare @ym datetime = '2014-08-26'
    select case 
       when DATEPART(YY,GETDATE()) = datepart(YY,@ym) and DATEPART(MM,GETDATE()) = datepart(MM,@ym)
       then '年月相同' 
       else '年月不相同' 
       end
       
    select case 
    when CONVERT(varchar(6),GETDATE(),112) = CONVERT(varchar(6),@ym,112)
    then '年月相同' 
    else '年月不相同' 
       end
       
    select case 
    when CONVERT(varchar(7),GETDATE(),120) = CONVERT(varchar(7),@ym,120)
    then '年月相同' 
    else '年月不相同' 
       end
    --关于convert第三个参数,可以上网上找找相关资料,第三个参数在转换时间的时候,每一种数字,都代表一种时间格式,找到你需要的格式,然后截取做比较,关于varchar(6)或者    varchar(7)这种长度是因为,如果长度不够,会自动截取前?位,?就是你填写的数字,所以可以通过长度控制你需要的年月,然后做对比
      

  8.   

    再添加一种,多多益善
    其中@datePara 是日期参数
    select case when year(@datePara)=year(getdate()) and month(@datePara)=month(getdate())
    then '年月相同'
    else '年月不相同'
    end
      

  9.   


    --获取当前时间[数据库时间]
    SELECT GETDATE()
    -- 获取当前的月份
    SELECT DATEPART(M,GETDATE())
    -- 获取传入时间的月份
    SELECT DATEPART(M,'2014-08-01')
    -- 比较
    IF(DATEPART(M,GETDATE()) = DATEPART(M,'2014-08-01'))
    BEGIN
    --做操作
    SELECT '相同' AS Result
    END    
    ELSE
    BEGIN
        --做操作
    SELECT '不相同' AS Result
    END
      

  10.   

    考虑到当前日期的格式会各种各样,所以可以参考下面的做法declare @input datetime
    --set @input='2014-08-01 00:00:00'
    set @input='2014/8/1 00:00:00'
    if(YEAR(@input)=YEAR(GETDATE()) and month(@input)=month(getdate()))
    begin
      select '相同'
    end
    else
    begin
      select '不同'
    end
      

  11.   


    DECLARE @ym DATETIME = '2014-08-28'
    IF  CONVERT(VARCHAR(10),GETDATE(),120)=CONVERT(VARCHAR(10),@ym,120)
    PRINT '年月相同' 
    ELSE
    PRINT '年月不相同'