消息关闭
    暂无新消息!
如题,小弟现在想查询从2016-08-01 21:00:00到2016-08-03 21:00:00间隔时间为10分钟的数据SQL语句应该怎样写?请大神们指教,小弟不胜感激

6个回答

︿ 2
显示所有记录

;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)
︿ 0
谢谢版主!小弟对SQLserver不太会这个是数据库、表和字段,能不能按照这个写个语句,小弟不胜感激 
︿ 0
你要的显示效果?
如果只是查询记录数用上面方法就行了 

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)
︿ 0
参照方法

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)