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
轉載于:https://www.cnblogs.com/guoerzzf/archive/2009/06/10/1500741.html
總結
以上是生活随笔為你收集整理的sql 查讯本日 本周 本月的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ubuntu命令行登录
- 下一篇: Exchange2003启用web页面登