Sql server SQL Server数据库查询帮助

Sql server SQL Server数据库查询帮助,sql-server,database,Sql Server,Database,可能重复: 嗨 我有一个问题,我很长一段时间都没有解决,我非常绝望 我有一个数据库(SQL Server),表名为'ProcessData',列名为'Process_Name'(数据类型:nvarchar(50)),'Start_At'(数据类型:DateTime)和'End_At'(数据类型:DateTime) 我需要知道每个“时间间隔”(比方说1分钟)在这段时间内有多少个进程(进程名=PN)处于打开状态(在“开始时间”列之后或等于该列,在“结束时间”列之前或等于该列)(可以是具有相同数据的

可能重复:

我有一个问题,我很长一段时间都没有解决,我非常绝望

我有一个数据库(SQL Server),表名为'ProcessData',列名为'Process_Name'(数据类型:nvarchar(50)),'Start_At'(数据类型:DateTime)和'End_At'(数据类型:DateTime)

我需要知道每个“时间间隔”(比方说1分钟)在这段时间内有多少个进程(进程名=PN)处于打开状态(在“开始时间”列之后或等于该列,在“结束时间”列之前或等于该列)(可以是具有相同数据的几行)

有人知道如何在没有“for”循环的情况下进行此查询吗?(它本身将提升时间),(答案将是一个表,有两列(1.检查发生的时间。2.此时打开的进程数)和每个“时间间隔”的一行(本例中为1分钟)

(如果有帮助,我正在与C#net合作)


非常感谢,

如果开始时间小于或等于请求的时间点,而结束时间大于或等于,则以下内容应返回表中的检查时间和进程数:

DECLARE @pot DATETIME

-- SET @pot TO THE POINT OF TIME YOU WANT THE DETERMINE THE ENTRIES FOR

SELECT @pos, COUNT(*) FROM ProcessData
WHERE @pot BETWEEN Start_At AND End_At
这假设您使用的是SQL Server,但在其他方言中可能有一些等效的语言


您也可以将其扩展为时间间隔,但要进行两次检查,一次检查“时间起点”,另一次检查“时间终点”。

查看这两个SO问题/答案,然后


他们都处理同一个问题…

请不要再问同样的问题。如果你有更多的细节,你可以编辑原始内容并更新其中的信息。谢谢,你能给我一个使用“时间间隔”的例子吗,因为我对这类东西很新。谢谢谢谢,它看起来真的很像,我会检查一下。