按时间统计报表sql 求时间

  1 ---求相差天数
  2 select datediff(day,'2004-01-01',getdate())
  3  
  4 --1.一个月第一天的
  5 SELECT DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
  6  
  7 --2.本周的星期一
  8 SELECT DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
  9  
 10 select dateadd(wk,datediff(wk,0,getdate()),6)
 11 --3.一年的第一天
 12 SELECT DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
 13  
 14 --4.季度的第一天
 15 SELECT DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
 16  
 17 --5.当天的半夜
 18 SELECT DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
 19  
 20 --6.上个月的最后一天
 21 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
 22  
 23 --7.去年的最后一天
 24 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate()), 0))
 25  
 26 --8.本月的最后一天
 27 SELECT dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0))
 28  
 29 --9.本年的最后一天
 30 SELECT dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate())+1, 0))
 31  
 32 --10.本月的第一个星期一
 33 select DATEADD(wk,
 34 DATEDIFF(wk,0,dateadd(dd,6-datepart(day,getdate()),getdate())), 0)
 35  
 36 --查询本周注册人数
 37 select count(*) from [user]
 38 where datediff(week,create_day-1,getdate())=0
 39  
 40 --上周注册人数
 41 select count(*) from [user]
 42 where datediff(week,create_day-1,getdate())=1
 43  
 44  
 45 --本月注册人数
 46 select count(*) from [user]
 47 where datediff(month,create_day,getdate())=0
 48  
 49 --上月注册人数
 50 select count(*) from [user]
 51 where datediff(month,create_day,getdate())=1
 52  
 53 --如果要效率,这样写查询
 54  
 55 --查询本周注册人数
 56 select count(*) from [user]
 57 where create_day>=dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))
 58 and create_day<dateadd(day,9-datepart(weekday,getdate()),convert(varchar,getdate(),112))
 59  
 60 --上周注册人数
 61 select count(*) from [user]
 62 where create_day>=dateadd(day,-5-datepart(weekday,getdate()),convert(varchar,getdate(),112))
 63 and create_day<dateadd(day,2-datepart(weekday,getdate()),convert(varchar,getdate(),112))
 64  
 65  
 66 --本月注册人数
 67 select count(*) from [user]
 68 where create_day>=dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))
 69 and create_day<dateadd(month,1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))
 70  
 71 --上月注册人数
 72 select count(*) from [user]
 73 where create_day>=dateadd(month,-1,dateadd(day,1-day(getdate()),convert(varchar,getdate(),112)))
 74 and create_day<dateadd(day,1-day(getdate()),convert(varchar,getdate(),112))
 75  
 76 --本周
 77 select count(*) from User
 78 where datediff(dd,create_day,getdate()) <= datepart(dw,getdate())
 79  
 80 --上周
 81 select count(*) from User
 82 where datediff(dd,create_day,(getdate() - datepart(dw,getdate()))) <= 7
 83  
 84 --本月
 85 select count(*) from User
 86 where datepart(mm,create_day) = datepart(mm,getdate())
 87 --上月
 88 select count(*) from User
 89 where datepart(mm,create_day) = datepart(mm,getdate()) - 1
 90 --本周
 91 select count(*) from [User]
 92 where datediff(dd,create_day,getdate()) <= datepart(dw,getdate())
 93  
 94 --上周
 95 select count(*) from [User]
 96 where datediff(dd,create_day,(getdate() - datepart(dw,getdate()))) <= 7
 97  
 98 --本月
 99 select count(*) from [User]
100 where datepart(mm,create_day) = datepart(mm,getdate())
101 --上月
102 select count(*) from [User]
103 where datepart(mm,create_day) = datepart(mm,getdate()) - 1
104 学习
105 month(create_day)=month(getdate())本月
106 month(create_day)=month(getdate())-1 上月
107  
108 补充 查询今日所有的
109 SELECT * from feedback WHERE (DATEDIFF(d,fedtime,GETDATE())=0) ORDER BY fedid DESC
---求相差天数
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

猜你喜欢

转载自www.cnblogs.com/aspstudy/p/11929525.html
今日推荐