• 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


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

  • 相关阅读:
    完全卸载删除nginx
    多线程如何确定线程数
    【精】Linux磁盘I/O性能监控之iostat详解
    Linux信号处理和守护进程
    Linux进程间通信——使用信号
    kill 命令详解 系统信号
    Valgrind使用指南和错误分析
    Valgrind memcheck 8种错误实例
    Linux环境崩溃生成core文件以及调试
    linux Valgrind使用说明-内存泄漏
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1767708.html
Copyright © 2020-2023  润新知