老师们,求条sql语句,谢谢了

weiyulin510037 2019-03-03 02:51:50
表名称:AA

时间 数据
2013-11-12 21:22:23 33
2013-11-12 21:33:23 234
2013-11-12 22:45:56 5
2013-11-12 23:45:56 35234
2013-11-12 00:45:56 35
2013-11-12 01:45:56 343


如何求出指定的开始到结束时间 每一小时的数据总合

注:每一小时可能有1条或多条数据,谢谢,我弄了好久,确实没弄出来,才来打扰各位,谢谢了。
...全文
1147 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
加油馒头 2019-03-08
  • 打赏
  • 举报
回复
outby 2019-03-08
  • 打赏
  • 举报
回复
答案在这里: var dt1 = jQuery("#fdt1").datebox("getValue") + " " + "00:00:00"; var dt2 = jQuery("#fdt2").datebox("getValue") + " " + "23:59:59"; select * from 表名 where 列名 between '" + dt1 + "' and '" + dt2 + "'; between是时间与时间之间的关键名。
大神来了丶 2019-03-07
  • 打赏
  • 举报
回复
select convert(char(13),时间,120),sum(数据) from 表 where 时间 between '开始时间' and '结束时间' group by convert(char(13),时间,120)
大神来了丶 2019-03-07
  • 打赏
  • 举报
回复
select convert(char(13),时间,120),sum(数据) from 表 group by convert(char(13),时间,120)
打中单的ADC 2019-03-05
  • 打赏
  • 举报
回复
引用 4 楼 秋的红果实 的回复:
假设 表t1,字段分别是:time1,data 开始时间是2013-1-1,结束时间是2013-12-31 在SQL管理器,建立测试表t1,并插入数据。你的表应该存在了,无需此操作

IF OBJECT_ID('t1','U') IS NOT NULL
  DROP TABLE t1
GO

CREATE TABLE t1(
  time1 DATETIME,
  data INT
  )

GO

INSERT t1(time1, data)
VALUES('2013-11-12 21:22:23',33),
('2013-11-12 21:33:23',234),
('2013-11-12 22:45:56',5),
('2013-11-12 23:45:56',35234),
('2013-11-12 00:45:56',35),
('2013-11-12 01:45:56',343)

GO
解决你的问题

WITH t2(time2,data2)
AS
(
  SELECT DATEPART(hh,time1),data FROM t1 WHERE time1>'2013-1-1' AND time1<'2013-12-31'
)
SELECT time2,SUM(data2) FROM t2 GROUP BY time2
这个思路很棒
  • 打赏
  • 举报
回复
引用 4 楼 秋的红果实 的回复:
假设 表t1,字段分别是:time1,data 开始时间是2013-1-1,结束时间是2013-12-31 在SQL管理器,建立测试表t1,并插入数据。你的表应该存在了,无需此操作

IF OBJECT_ID('t1','U') IS NOT NULL
  DROP TABLE t1
GO

CREATE TABLE t1(
  time1 DATETIME,
  data INT
  )

GO

INSERT t1(time1, data)
VALUES('2013-11-12 21:22:23',33),
('2013-11-12 21:33:23',234),
('2013-11-12 22:45:56',5),
('2013-11-12 23:45:56',35234),
('2013-11-12 00:45:56',35),
('2013-11-12 01:45:56',343)

GO
解决你的问题

WITH t2(time2,data2)
AS
(
  SELECT DATEPART(hh,time1),data FROM t1 WHERE time1>'2013-1-1' AND time1<'2013-12-31'
)
SELECT time2,SUM(data2) FROM t2 GROUP BY time2
感谢楼主分享。思路清晰。
秋的红果实 2019-03-04
  • 打赏
  • 举报
回复
秋的红果实 2019-03-04
  • 打赏
  • 举报
回复
秋的红果实 2019-03-04
  • 打赏
  • 举报
回复
假设 表t1,字段分别是:time1,data 开始时间是2013-1-1,结束时间是2013-12-31 在SQL管理器,建立测试表t1,并插入数据。你的表应该存在了,无需此操作

IF OBJECT_ID('t1','U') IS NOT NULL
  DROP TABLE t1
GO

CREATE TABLE t1(
  time1 DATETIME,
  data INT
  )

GO

INSERT t1(time1, data)
VALUES('2013-11-12 21:22:23',33),
('2013-11-12 21:33:23',234),
('2013-11-12 22:45:56',5),
('2013-11-12 23:45:56',35234),
('2013-11-12 00:45:56',35),
('2013-11-12 01:45:56',343)

GO
解决你的问题

WITH t2(time2,data2)
AS
(
  SELECT DATEPART(hh,time1),data FROM t1 WHERE time1>'2013-1-1' AND time1<'2013-12-31'
)
SELECT time2,SUM(data2) FROM t2 GROUP BY time2
Hello World, 2019-03-04
  • 打赏
  • 举报
回复
DECLARE @t TABLE(时间	DATETIME NOT NULL, 数据 INT NOT NULL)
INSERT @t(时间, 数据)
VALUES('2013-11-12 21:22:23',33),
('2013-11-12 21:33:23',234),
('2013-11-12 22:45:56',5),
('2013-11-12 23:45:56',35234),
('2013-11-12 00:45:56',35),
('2013-11-12 01:45:56',343);
WITH t AS (SELECT CONVERT(varchar(13),时间,120) 时间,数据 FROM @t)
SELECT 时间,SUM(t.数据) 数据 FROM t GROUP BY t.时间

极客诗人 2019-03-04
  • 打赏
  • 举报
回复
select convert(char(13),时间,120) ,COUNT(*) from 表
group by convert(char(13),时间,120)
极客诗人 2019-03-04
  • 打赏
  • 举报
回复
select CONVERT(date,时间),COUNT(*) from 表
group by CONVERT(date,时间)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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