怎样查询某个时间段内间隔时间为10分钟的数据

luckystar1030 2016-08-09 03:24:10
如题,小弟现在想查询从2016-08-01 21:00:00到2016-08-03 21:00:00间隔时间为10分钟的数据SQL语句应该怎样写?请大神们指教,小弟不胜感激
...全文
6153 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-08-09
  • 打赏
  • 举报
回复
通常这样统计都是分析数据 ,上面 第1列 为所属时间段
中国风 2016-08-09
  • 打赏
  • 举报
回复
显示所有记录
;WITH TabDate(Dt)
AS
(
SELECT CAST('2016-08-01 21:00:00' AS DATETIME)
UNION ALL
SELECT DATEADD(n,10,Dt) FROM TabDate WHERE Dt<'2016-08-03 21:00:00'
)
SELECT a.Dt,b.*
FROM TabDate AS a
	LEFT JOIN TableName AS b ON b.日期列>=a.dt AND b.日期列<DATEADD(n,10,Dt)
OPTION(MAXRECURSION 0)
luckystar1030 2016-08-09
  • 打赏
  • 举报
回复
我要的是这个时间段内的所有字段的数据,现在只生成了时间
luckystar1030 2016-08-09
  • 打赏
  • 举报
回复
引用 3 楼 roy_88 的回复:
你要的显示效果? 如果只是查询记录数用上面方法就行了 e.g.
;WITH TabDate(Dt)
AS
(
SELECT CAST('2016-08-01 21:00:00' AS DATETIME)
UNION ALL
SELECT DATEADD(n,10,Dt) FROM TabDate WHERE Dt<'2016-08-03 21:00:00'
)
SELECT a.Dt,COUNT(1) AS 记录数 
FROM TabDate AS a
	LEFT JOIN dbo.BStable AS b ON b.日期时间>=a.dt AND b.日期时间<DATEADD(n,10,Dt)
GROUP BY a.Dt
OPTION(MAXRECURSION 0)
对的我要的是间隔时间的数据
中国风 2016-08-09
  • 打赏
  • 举报
回复
你要的显示效果? 如果只是查询记录数用上面方法就行了 e.g.
;WITH TabDate(Dt)
AS
(
SELECT CAST('2016-08-01 21:00:00' AS DATETIME)
UNION ALL
SELECT DATEADD(n,10,Dt) FROM TabDate WHERE Dt<'2016-08-03 21:00:00'
)
SELECT a.Dt,COUNT(1) AS 记录数 
FROM TabDate AS a
	LEFT JOIN dbo.BStable AS b ON b.日期时间>=a.dt AND b.日期时间<DATEADD(n,10,Dt)
GROUP BY a.Dt
OPTION(MAXRECURSION 0)
luckystar1030 2016-08-09
  • 打赏
  • 举报
回复
谢谢版主!小弟对SQLserver不太会这个是数据库、表和字段,能不能按照这个写个语句,小弟不胜感激
中国风 2016-08-09
  • 打赏
  • 举报
回复
参照方法 e.g.
;WITH TabDate(Dt)
AS
(
SELECT CAST('2016-08-01 21:00:00' AS DATETIME)
UNION ALL
SELECT DATEADD(n,10,Dt) FROM TabDate WHERE Dt<'2016-08-03 21:00:00'
)
SELECT a.Dt,COUNT(1) AS 记录数 
FROM TabDate AS a
	LEFT JOIN TableName AS b ON b.日期列>=a.dt AND b.日期列<DATEADD(n,10,Dt)
GROUP BY a.Dt
OPTION(MAXRECURSION 0)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧