sqlserver时段,Sql时间

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

SQLSERVER语句怎么查询一个时间段的数据

select * from 表 where 日期字段='开始日期' and 日期字段='截止日期'

and convert(char(8),日期字段,108)='开始时间' and convert(char(8),日期字段,108)='截止时间'

例如:

select * from tb1 where dDate='2010-11-05' and dDate='2010-11-15'

and convert(char(8),dDate,108)='22:30:00' and convert(char(8),dDate,108)='23:00:00'

求sqlserver查询某个时间段的查询方法

date表示字段

select * from table where date between '2007-10-01' and '2008-10-01'

或者

select * from table where date'2007-10-01' and date'2008-10-01'

两个区别不大,between包含了两头的日期,那个不包含

SQLSERVER特定时间段查询

DECLARE @dt DATETIME

DECLARE @dt2 DATETIME

SET @dt = '2008-07-24'

SET @dt2 = DATEADD(day, 1, @dt)

select @dt as dt, @dt2 as dt2

select * from meet_now where meetdate between CONVERT(datetime , @dt, 111 ) and convert(datetime , @dt2, 111 ) order by id

select * from meet_now where DATEDIFF(day, meetdate, @dt) = 0 order by id

sqlserver时间段 查询问题

比如选择在5.1和5.31开始的。。。

select * from tablename

where start_date between CONVERT(datetime , '2008/05/01', 111 )

and convert(datetime , '2008/05/31', 111 )

带时分秒就用120

select CONVERT(varchar, getdate(), 120 )

2004-09-12 11:06:08


本文标题:sqlserver时段,Sql时间
本文地址:http://scyanting.com/article/dsdgeij.html