zoukankan      html  css  js  c++  java
  • sql 查询本周本月

    sql 查询本周本月问题

    ---求相差天数  
    select   datediff(day,'2004-01-01',getdate())      
        
    --1.一个月第一天的  
    SELECT   DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0)  
        
    --2.本周的星期一  
    SELECT   DATEADD(wk,   DATEDIFF(wk,0,getdate()),   0)  
        
    select   dateadd(wk,datediff(wk,0,getdate()),6)   

    --3.一年的第一天  
    SELECT   DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0)  
        
    --4.季度的第一天  
    SELECT   DATEADD(qq,   DATEDIFF(qq,0,getdate()),   0)  
        
    --5.当天的半夜  
    SELECT   DATEADD(dd,   DATEDIFF(dd,0,getdate()),   0)  
        
    --6.上个月的最后一天  
    SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(mm,0,getdate()),   0))  
        
    --7.去年的最后一天  
    SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate()),   0))  
        
    --8.本月的最后一天  
    SELECT   dateadd(ms,-3,DATEADD(mm,   DATEDIFF(m,0,getdate())+1,   0))  
        
    --9.本年的最后一天  
    SELECT   dateadd(ms,-3,DATEADD(yy,   DATEDIFF(yy,0,getdate())+1,   0))  
        
    --10.本月的第一个星期一  
    select   DATEADD(wk,  
    DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())),   0)

    --查询本周注册人数  
    select   count(*)   from   [user]  
    where   datediff(week,create_day-1,getdate())=0  
        
    --上周注册人数  
    select   count(*)   from   [user]  
    where   datediff(week,create_day-1,getdate())=1  
        
        
    --本月注册人数  
    select   count(*)   from   [user]  
    where   datediff(month,create_day,getdate())=0  
        
    --上月注册人数  
    select   count(*)   from   [user]  
    where   datediff(month,create_day,getdate())=1  
      
    --如果要效率,这样写查询  
        
    --查询本周注册人数  
    select   count(*)   from   [user]  
    where   create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
    and   create_day<dateadd(day,9-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
        
    --上周注册人数  
    select   count(*)   from   [user]  
    where   create_day>=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
    and   create_day<dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))  
        
        
    --本月注册人数  
    select   count(*)   from   [user]  
    where   create_day>=dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))  
    and   create_day<dateadd(month,1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))  
        
    --上月注册人数  
    select   count(*)   from   [user]  
    where   create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))  
    and   create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))  
      
    --本周  
    select   count(*)   from   User  
    where   datediff(dd,create_day,getdate())   <=   datepart(dw,getdate())  
            
    --上周  
    select   count(*)   from   User  
    where   datediff(dd,create_day,(getdate()   -   datepart(dw,getdate())))   <=   7  
        
    --本月  
    select   count(*)   from   User  
    where   datepart(mm,create_day)   =   datepart(mm,getdate())   

    --上月  
    select   count(*)   from   User  
    where   datepart(mm,create_day)   =   datepart(mm,getdate())   -   1

    --本周  
    select   count(*)   from   [User]  
    where   datediff(dd,create_day,getdate())   <=   datepart(dw,getdate())  
            
    --上周  
    select   count(*)   from   [User]  
    where   datediff(dd,create_day,(getdate()   -   datepart(dw,getdate())))   <=   7  
        
    --本月  
    select   count(*)   from   [User]  
    where   datepart(mm,create_day)   =   datepart(mm,getdate())  
    --上月  
    select   count(*)   from   [User]  
    where   datepart(mm,create_day)   =   datepart(mm,getdate())   -   1
    学习  
    month(create_day)=month(getdate())本月  
    month(create_day)=month(getdate())-1   上月

    补充 查询今日所有的
    SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC


           快速评论通道--您对本文的宝贵意见:
           
    感谢您的鼓励和批评,它将是我进步的动力

  • 相关阅读:
    【算法】数据结构与算法基础总览(上)数据结构篇
    Hangfire只允许同时运行同一个任务
    Redis缓存系列--(六)缓存和数据库一致性更新原则
    Redis缓存系列--(五)自定义Redis缓存注解的使用
    Redis缓存系列--(四)Redis基础数据类型在Java中的使用
    Redis缓存系列--(三)redis内存管理
    Redis缓存系列--(二)Redis持久化机制
    Redis缓存系列--(一)Redis的编译安装以及服务的开启
    深入理解Java虚拟机--垃圾收集器与内存分配策略
    分布式系统系列--(四)LVS基础知识点介绍
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1767708.html
Copyright © 2011-2022 走看看