怎么查询本周数据?

viphk 2011-04-19 10:43:56
表里有个时间字段,time
怎么查询今日数据,昨日数据,本周数据?
本周数据不是指7个的数据,是自然周期,
怎么写SQL语句的呢?
...全文
88 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dawugui 2011-04-20
  • 打赏
  • 举报
回复
[Quote=引用楼主 viphk 的回复:]
表里有个时间字段,time
怎么查询今日数据,昨日数据,本周数据?
本周数据不是指7个的数据,是自然周期,
怎么写SQL语句的呢?
[/Quote]
今日数据
select * from tb where datediff(dd,time,getdate()) = 0

昨日数据
select * from tb where datediff(dd,time,getdate()) = 1

本周数据
按照西方习惯
select * from tb where datediff(week,time,getdate()) = 0
按照中国习惯
select * from tb where (datediff(week,time,getdate()) = 0 and datepart(dw,time) > 1) or (datediff(week,time,getdate()) = 1 and datepart(dw,time) = 1)



viphk 2011-04-20
  • 打赏
  • 举报
回复
谢谢大家!
liang145 2011-04-20
  • 打赏
  • 举报
回复

create table #Time(date datetime)
insert #Time
select '2011-04-16' union all
select '2011-04-17' union all
select '2011-04-18' union all
select '2011-04-19' union all
select '2011-04-20' union all
select '2011-05-07' union all
select '2011-05-08' union all
select '2011-05-09' union all
select '2011-05-11'

declare @Today as datetime
set @Today=getdate()
select * from #Time where convert(nvarchar(10),date,120)=convert(nvarchar(10),@Today,120) --今天

select * from #Time where convert(nvarchar(10),date,120)=convert(nvarchar(10),dateadd(day,-1,@Today),120) --昨天

select * from #Time where datepart(week,date)=datepart(week,@Today) --本周
luofenghen 2011-04-19
  • 打赏
  • 举报
回复
比如说你想知道客户第12周的数据

select * from 表 where datepart(week,[时间列])=12

如果要查本周的

select * from 表 where datepart(week,[时间列])=datepart(week,getdate())

网上找的 试试吧

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧