当前位置:首页 » 编程语言 » sql按时间段统计
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql按时间段统计

发布时间: 2022-03-12 20:56:46

sqlServer的分时间段统计的SQL语句。

没看懂a和b二个表的用途,假设对表a统计。
直接统计比较困难,不过你可以先把日期转换成到最早日期的分钟数,把分钟数除以10求整,得到的新值就是每10分钟一组的了。不过新值需要保存到临时表,再对临时表分组统计。
--按上述分析将a表中的f_time转换为以最早日期为起点的每10分钟一个值的新列,如间隔8分钟,新列值为0,18分钟,新值为1.此列命名为ten,把它们复制到临时表#tj中。
select floor(datediff(mi,(select min(f_time) from a),optime)/10) ten,f_time,f_val from a into #tj where not a is null order by f_time
--对#tj按ten列分组统计,同时显示每组的起始日期好截止日期。
select ten,min(f_time) bg,max(f_time) end,sum(f_val) hj_val from #tj group by ten order by ten
--把临时表删掉
drop table #tj

⑵ sql 根据时间段分组统计数据

把小时、分钟分别定义变量,循环变化。

⑶ sql按指定时间段统计问题

不用去判断,系统自己会判断的,如上图,测试代码如下:

declare @dateNow varchar(100)
declare @daybefore varchar(100)

set @dateNOw = '2014/03/01 09:00:00'

set @daybefore = DATEADD(DAY,-1,@dateNOw)

select @daybefore as daybefore, @dateNow

select * from v_WorkRecord where MakeDate between @daybefore and @dateNow

⑷ 如何在SQL中按时间段查询数据

sql server:

select * from 表 where 发生日期>'2008-7-1' and 发生日期<'2008-12-31'

access:

select * from 表 where 发生日期>#2008-7-1# and 发生日期<#2008-12-31#

这样就可以了,注意sql server与access中的日期有一点不一样。

(4)sql按时间段统计扩展阅读:

sql查询日期语句

select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查询当天日期在一周年的数据

select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查询当天的所有数据

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上一月

查询当天记录另类的方法:

SELECT *

FROM j_GradeShop

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)

ORDER BY GAddTime DESC

⑸ SQL 查询按时间统计记录条数的问题

select user.realname, count(news.id) from user.id = news.adserid where addtime > '2009-0-01' and addtiem < '2009-12-31' group by user.id,user.realname addtime如果是日期型的话,你自己改一下用法即可

⑹ 按照时间段统计的sql语句

我只能大概说一个想法,
创建一个中间表,存放8点-14点 14点-20点 20点-2点 2点-8点 这样的一个标题及具体的时间段,
然后用这个中间表与biao1根据时间tm进行关联,就可以把数据与时间段联系上。

然后按这个时间段进行了group by ,之后再用 pivot就可以出来了。

⑺ SQL 统计 一段时间 按每小时统计 记录的数量

select count(distinct id) cnt , substr(time,1,13) hours
from mytable a
group by substr(time,1,13)
order by 2
;