Sql server 在SQL Server中按带中断的日期范围检索数据

Sql server 在SQL Server中按带中断的日期范围检索数据,sql-server,sql-server-2008,tsql,Sql Server,Sql Server 2008,Tsql,我需要按所选日期检索数据。这里有一个主要的细节:用户可以一个接一个地选择两天,然后可以跳过一些天,然后选择另一天 将选定日期传递到存储过程并按这些日期范围组织筛选器的最佳方法是什么 例如,我的表具有以下结构: CREATE TABLE [dbo].[Events]( [ID] [int] IDENTITY(1,1) NOT NULL, [EventDate] [datetime] NOT NULL, [Amount] [float] NOT NULL, CONSTRAI

我需要按所选日期检索数据。这里有一个主要的细节:用户可以一个接一个地选择两天,然后可以跳过一些天,然后选择另一天

将选定日期传递到存储过程并按这些日期范围组织筛选器的最佳方法是什么

例如,我的表具有以下结构:

CREATE TABLE [dbo].[Events](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [EventDate] [datetime] NOT NULL,
    [Amount] [float] NOT NULL,
 CONSTRAINT [PK_Events] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
使用以下数据:

INSERT [dbo].[Events] ([EventDate], [Amount]) VALUES ('2012-01-01 10:00', 12)
INSERT [dbo].[Events] ([EventDate], [Amount]) VALUES ('2012-01-01 11:00', 154)
INSERT [dbo].[Events] ([EventDate], [Amount]) VALUES ('2012-01-01 12:00', 4)
INSERT [dbo].[Events] ([EventDate], [Amount]) VALUES ('2012-02-01 10:00', 132)
INSERT [dbo].[Events] ([EventDate], [Amount]) VALUES ('2012-02-01 11:00', 212)
INSERT [dbo].[Events] ([EventDate], [Amount]) VALUES ('2012-03-01 10:00', 712)
INSERT [dbo].[Events] ([EventDate], [Amount]) VALUES ('2012-03-01 20:00', 892)
用户希望检索事件日期为2012-01-01 10:00和2012-01-01 11:00的数据, 从2012-03-01 09:00到2012-03-01 19:00等


用户可以选择不同的间隔计数。

如果要向存储过程发送多个“相同”的参数,通常会指示应该使用(TVPs)

在存储过程中,您可以将TVP视为表变量,因此您的查询如下所示:

SELECT
    *
FROM
    Events e
        inner join
    @MyTVP t
        on
            e.EventDate between t.FromDate and t.ToDate

假设您的TVP有两列,
FromDate
ToDate
,具有明显的定义。

提供的信息不够。请提供带有示例dataBrilliant的表结构!这就是我需要的。非常感谢。