已知:当前日期,取本月日期范围,上月日期范围,半年月平均日期范围晕救命

解决方案 »

  1.   

    SELECT * FROM tb WHRE DATEDIFF(mm,字段,GETDATE())=0 --本月
    SELECT * FROM tb WHRE DATEDIFF(mm,字段,GETDATE())=1 --上月
    SELECT * FROM tb WHRE YEAR(字段)=YEAR(GETDATE()) AND 
    CHARINDEX(',' + RTRIM(MONTH(字段)) + ','
    ,
    CASE WHEN MONTH(GETDATE())>6 THEN ',7,8,9,10,11,12,'
    ELSE ',1,2,3,4,5,6,'
    END
    )>0
    --上半年或下半年
    --将GETDATE()换成你的当前日期即可.可能有手误
      

  2.   

    当前日期
    --本月日期第一天
    SELECT CONVERT(DATETIME,CONVERT(CHAR(8),GETDATE(),120)+'01',120)
    --本月日期最后一天
    SELECT DATEADD(DAY,-1,CONVERT(VARCHAR(8),DATEADD(MONTH,1,CONVERT(CHAR(10),GETDATE(),120)),120)+'01')
      

  3.   

    上月的就把用DATEADD(MONTH,-1,GETDATE())把getdate()改一下就可以了
      

  4.   

    当前日期,取本月日期范围,上月日期范围,半年月平均日期范围
    1 当前日期
    select getdate()
    2 取本月日期范围
    select convert(varchar(7) ,getdate(),121)+ '-01' + '~' 
    + convert ( varchar(10),dateadd(day , -1 , cast(convert(varchar(7) ,dateadd(month , 1 , getdate()),121)+ '-01' as datetime)) ,121)3.上月日期范围select convert(varchar(7) ,dateadd(month ,-1 , getdate()),121)+ '-01' + '~' 
    + convert ( varchar(10),dateadd(day , -1 , cast(convert(varchar(7) ,getdate(),121)+ '-01' as datetime)) ,121)4.半年月平均日期范围
    什么意思 ,不明白
      

  5.   

    zjdyzwx(十一月猪) ( ) 信誉:100 
    4.半年月平均日期范围
    什么意思 ,不明白
    -------------------------意思是当前月如果是 5月,那么它在上半年,就取上半年的时间范围.如果是9月那么它在下半年。
      

  6.   

    zjdyzwx(十一月猪) ( ) 信誉:100 
    4.半年月平均日期范围
    什么意思 ,不明白
    -------------------------意思是当前月如果是 5月,那么它在上半年,就取上半年的时间范围.如果是9月那么它在下半年。你说的很对,就是这个意思