新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
没看懂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
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'
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包含了两头的日期,那个不包含
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
比如选择在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