永发信息网

sql怎么取出某一周的七天数据

答案:2  悬赏:30  手机版
解决时间 2021-01-08 04:59
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-01-07 21:34
sql怎么取出某一周的七天数据
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-01-07 23:03
如果数据库是SQL Server,可以这样做: 找到输入日期的所在的周一,然后将数据范围限制在这个周一到下个周一之间(包括此周一,不包括下个周一)。所以,关键就在计算周一是哪一天(SQL Server中一周第几天受@@datefirst影响,默认值为7,即周日为一周第一天,但是这里需要周一为一周开始)。
declare @dateValue datetime, @startDay datetime
set @dateValue = '2014-11-11' -- 赋需要查询的日期值,不包含时分秒
set @startDay = dateadd(d, CASE WHEN datepart(dw, @dateValue) + @@DATEFIRST > 8 THEN 8 - @@datefirst ELSE 1 - @@datefirst END, dateadd(d,  - datepart(dw, @dateValue) + 1, @dateValue))
select *
from data_table
where date_field >= @startDay and date_field < dateadd(d, 7, @startDay) --将数据限制在从周一开始的7天内  
order by date_field   -- 按日期升序排列如果是其他数据库,则可以使用类似方法实现。
追问SQL Server看的不大明白 数据库是mysql的 还是没弄好 绕的有点晕 邦写下贝 加分追答MySQL没怎么用,不过下面的SQL是测试过的:
set @dateValue = '2014-11-11'; 
set @startDay = date_add(@date_value, interval -WEEKDAY(@date_value) day); 
 
select s.*, week(@dateValue) as week_value
from data_table s
where s.date_field >= @startDay and s.date_field < date_add(@startDay, interval 7 day) 
order by date_field;
全部回答
  • 1楼网友:白昼之月
  • 2021-01-07 23:32
set language N'Simplified Chinese'
select datename(weekday, 数据添加日期列名) as dayOnweek,* from 表名 
where datediff(week,数据添加日期列名,'2014-11-1')=0
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯