您的位置:首页 > 数据库

sql查询当天、本周、本月、本年

2015-10-28 16:54 736 查看
--查询当天:
select
*
from
info
where
DateDiff(dd,datetime,getdate())=0
--查询24小时内的:
select
*
from
info
where
DateDiff(hh,datetime,getDate())<=24
--info为表名,datetime为数据库中的字段值
--info为表名,datetime为数据库中的字段值

标签: 一个月的第一天 本周一 一年的第一天
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,9-datepart(weekday,getdate()),convert(varchar,getdate(),112))

2.上周注册人数
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))

3.本月注册人数
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)))

4.上月注册人数
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))

5.本周
select count(*) from User
where datediff(dd,create_day,getdate()) <= datepart(dw,getdate())

6.上周
select count(*) from User
where datediff(dd,create_day,(getdate() - datepart(dw,getdate()))) <=
7

7.本月
select count(*) from User
where datepart(mm,create_day) = datepart(mm,getdate())
8.上月
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: