sql查詢本週本月本年

2021-05-23 08:42:11 字數 2846 閱讀 6332

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)

11.查詢本週註冊人數  

select count(*) from [user] where datediff(week,create_day-1,getdate())=0   

12.上週註冊人數  

select   count(*)   from   [user]   where   datediff(week,create_day-1,getdate())=1   

13.本月註冊人數  

select   count(*)   from   [user]   where   datediff(month,create_day,getdate())=0   

14.上月註冊人數  

select   count(*)   from   [user]  

where   datediff(month,create_day,getdate())=1   

如果要效率,這樣寫查詢

1.查詢本週註冊人數  

select   count(*)   from   [user]  

where   create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))  

and   create_day=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))  

and   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)))  

and   create_day8.上月  

select   count(*)   from   user  

where   datepart(mm,create_day)   =   datepart(mm,getdate())   -   1

9.本週  

select   count(*)   from   [user]  

where   datediff(dd,create_day,getdate())   <=   datepart(dw,getdate())   

10.上週  

select   count(*)   from   [user]  

where   datediff(dd,create_day,(getdate()   -   datepart(dw,getdate())))   <=   7   

11.本月  

select   count(*)   from   [user]  

where   datepart(mm,create_day)   =   datepart(mm,getdate())  

12. 上月  

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

mysql查詢,本月 本週 本年

mysql查詢,本月 本週 本年 今天 select from 表名 where to days 時間欄位名 to days now 昨天 select from 表名 where to days now to days 時間欄位名 1 本週 select from 表名 where yearwee...

Oracle查詢本週 本月 本年的記錄

trunc date,fmt 其中 date 為必要引數,是輸入的乙個日期值 fmt 引數可忽略,是日期格式,用以指定的元素格式來截去輸入的日期值。忽略它則由最近的日期截去 下面是該函式的使用情況 trunc sysdate,yyyy 返回當年第一天.trunc sysdate,mm 返回當月第一天...

MySQL日期查詢 本週 本月 本季 本年

查詢當天 select from 表名 where to days 時間欄位名 to days now 查詢昨天 select from 表名 where to days now to days 時間欄位名 1 查詢一周 select from 表名 where date sub curdate i...