sql查询本周,从周一开始算启

xjzhangbowei 2015-05-01 07:12:39




select * from zbowei_tongji where DateDiff(week,tongji_time,getdate() )=0


4月26日是周末,怎么查询的时候还是出现了呢?
...全文
880 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
menggang9802 2015-06-24
  • 打赏
  • 举报
回复
首先明确你的需求: 1:你是要周一到周五的数据? 2:你是要周一到周日的数据?
wtujedp 2015-06-24
  • 打赏
  • 举报
回复
select DATEADD(DAY,-(Datepart(WEEKDAY,GETDATE())-2),GETDATE()) ,--本周周一 DATEADD(DAY,-(Datepart(WEEKDAY,GETDATE())-8),GETDATE())--本周周日
xjzhangbowei 2015-06-14
  • 打赏
  • 举报
回复
求大神讲讲呀
  • 打赏
  • 举报
回复
本周第一天也可以这样计算
select dateadd(week, datediff(week,0,GETDATE()-1),0)
习惯性蹭分 2015-06-14
  • 打赏
  • 举报
回复
引用 4 楼 xjzhangbowei 的回复:
[quote=引用 3 楼 wmxcn2000 的回复:]

-- 试试这个。
tongji_time > convert(varchar(10),GETDATE() - datepart(weekday, getdate()) + 1 ,121)

--你的意思是把tongji_time给换成
convert(varchar(10),GETDATE() - datepart(weekday, getdate()) + 1 ,121)
[/quote] convert(varchar(10),GETDATE() - datepart(weekday, getdate()) + 1 ,121) 这是算周一的日期0点。 set datefirst 1 select @@datefirst 用这个可以设置星期一为一周开始日期,可以直接用你原语句。
  • 打赏
  • 举报
回复
可以设置周一为一周的开始的 set DATEFIRST 1
  • 打赏
  • 举报
回复
西方习惯把上周的周日作为下周的周一计算,你只是单独计算的话,计算的是从上周日到本周的周六的,加1,就把日期往后推一天,就是你要的本周周一到本周周天了
xjzhangbowei 2015-05-05
  • 打赏
  • 举报
回复
引用 3 楼 wmxcn2000 的回复:

-- 试试这个。
tongji_time > convert(varchar(10),GETDATE() - datepart(weekday, getdate()) + 1 ,121)

--你的意思是把tongji_time给换成
convert(varchar(10),GETDATE() - datepart(weekday, getdate()) + 1 ,121)
卖水果的net 版主 2015-05-01
  • 打赏
  • 举报
回复

-- 试试这个。
tongji_time > convert(varchar(10),GETDATE() - datepart(weekday, getdate()) + 1 ,121)
卖水果的net 版主 2015-05-01
  • 打赏
  • 举报
回复
看看错了,刚才那个回得,你忽略吧。 2015-04-26 是周日,西方的说法是,周日是一周的开始,所以周日是第一天。
卖水果的net 版主 2015-05-01
  • 打赏
  • 举报
回复
DateDiff(week,tongji_time,getdate() ) 这个条件,有些问题, datediff (week , date1 , date2 ) ,这样的一个参数,tongji_time ,看起来是个数值列。。

34,594

社区成员

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

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