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