
select sum(cost),w1 from
(select cost,datepart(w,date1) as w1 from tb1 where datediff(day,'2015-6-1',date1)>=0
and datediff(day,date1,'2015-6-30')>=0) as a1
group by w1
SELECT from tb_drsheet where datediff(week,datEdt-1,getdate())=0
试试这个 oracle 的话修改相应的函数
如果数据库是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如何按周一、周二。。。周日 分组查询全部的内容,包括:sql如何按周一、周二。。。周日 分组查询、sql查询本周内数据,周一至周天,表:tb_drsheet 时间字段:datEdt、sql server 怎么查看最近一周的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)