[英]Group by Date -Month -Day Hour and Time Query
Group by Date -Month -Day Hour and Time Query 按日期分组-月-日小时和时间查询
I would like to group by Rundate and then JobDateStamp by yy/mm/dd hh:mm no seconds 我想按Rundate分组,然后按yy / mm / dd hh:mm分组JobDateStamp,没有秒
Results 结果
[RunDate] [count]
12/11/2014 21:00 3
13/11/2014 21:00 1
3 lots of jobs were run on 12/11/2014 (3 date and time) 1 lots of jobs were run on 13/11/2014 (1 date and time) 2014年11月11日(3个日期和时间)运行了3个工作作业12014年11月13日(1个日期和时间)运行了3个工作
**create table tbl_tasks**
(
Rundate datetime,
JobDateStamp datetime,
Runs int
)
insert into tbl_tasks values
('2014-11-13 21:00:46.393','2014-11-13 21:36:27.393',1),
('2014-11-13 21:00:46.393','2014-11-13 21:36:25.393',1),
('2014-11-13 21:00:46.393','2014-11-13 21:36:24.393',1),
('2014-11-12 21:00:47.000','2014-11-13 14:14:46.393',1),
('2014-11-12 21:00:47.000','2014-11-13 14:12:46.393',1),
('2014-11-12 21:00:47.000','2014-11-12 21:04:43.393',1),
('2014-11-12 21:00:47.000','2014-11-12 21:04:41.393',1)
This data is a result of a query and next step is to group by yy/mm/dd hh:mm 此数据是查询的结果,下一步是按 yy / mm / dd hh:mm 分组
Rundate JobDateStamp Runs 运行日期JobDateStamp运行
2014-11-13 21:00:46.393 2014-11-13 21:36:27.393 1 2014-11-13 21:00:46.393 2014-11-13 21:36:27.393 1
2014-11-13 21:00:46.393 2014-11-13 21:36:25.393 1 2014-11-13 21:00:46.393 2014-11-13 21:36:25.393 1
2014-11-13 21:00:46.393 2014-11-13 21:36:24.393 1 2014-11-13 21:00:46.393 2014-11-13 21:36:24.393 1
2014-11-12 21:00:47.000 2014-11-13 14:14:46.393 1 2014-11-12 21:00:47.000 2014-11-13 14:14:46.393 1
2014-11-12 21:00:47.000 2014-11-13 14:12:46.393 1 2014-11-12 21:00:47.000 2014-11-13 14:12:46.393 1
2014-11-12 21:00:47.000 2014-11-12 21:04:43.393 1 2014-11-12 21:00:47.000 2014-11-12 21:04:43.393 1
2014-11-12 21:00:47.000 2014-11-12 21:04:41.393 1 2014-11-12 21:00:47.000 2014-11-12 21:04:41.393 1
you can do it by converting time to minutes and using count(distinct .. )
您可以通过将时间转换为分钟并使用count(distinct .. )
As you need further filter by jobdatestamp, need to use it in count 由于您需要按jobdatestamp进一步过滤,因此需要在计数中使用它
SELECT dateadd(minute, datediff(minute, 0, rundate), 0) ,
count( distinct dateadd(minute, datediff(minute, 0, JobDateStamp), 0))
FROM tbl_tasks
GROUP by dateadd(minute, datediff(minute, 0, rundate), 0)
Just truncate the datetime to the previous minute and group by that value: 只需将日期时间截断为前一分钟,然后按该值分组:
select
dateadd(minute, datediff(minute, 0, Rundate ), 0) RunDate,
COUNT(*) Count
FROM tbl_tasks
GROUP BY dateadd(minute, datediff(minute, 0, Rundate ), 0)
If you are using SQL Server 2012
, you can also make some use of the Format
to group on: 如果您使用的是SQL Server 2012
,则还可以使用“ Format
进行分组:
Select Rundate, Count(*) Count
From
(
Select Format(Rundate, 'yyyy/MM/dd HH:mm') Rundate, JobDateStamp, Runs
From tbl_tasks
)A
Group By Rundate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.