SQL Visual Studio Table 中日期之间的查询

SQL Query Between Dates in Visual Studio Table

我在 Visual Studio 中有一个 table,我想为 StartDate 创建一个输入字段,为 EndDate 创建另一个输入字段,其中用户 select 的日期为两者都会 return 日期介于用户选择的开始日期和结束日期之间的所有记录。我还希望用户可以选择仅搜索 StartDate 并将 EndDate 保留为 null,因此基本上只有 2 个输入字段用于 table(如果 End Date 为 null,则为 1)。

我现在有这个 return 是用户 select 的日期,但仅限于那个日期:

(Date = @Date) AND (@Date BETWEEN @StartDate AND @EndDate)

@StartDate 是数据库中任何日期之前的日期。 @EndDate 是当天。这是为了防止用户输入的日期不在数据库的日期范围内,这将 return 出错。

我试过使参数@StartDate 等于@Date,这样当用户select输入日期时,它将成为开始日期。我还为用户提供了输入字段 select 一个 EndDate,这似乎有效。我只是无法让开始日期参数按我想要的方式工作。

这些是我尝试过的查询:

1.

(Date = @Date) AND (@StartDate = @Date) AND (@Date BETWEEN @StartDate AND @EndDate)

2.

(Date = @Date) AND (@Date BETWEEN @Date AND @EndDate)

如何修改此 query/parameters 以使用户在输入字段中 select 开始日期和结束日期以及 table 到 return 所有这些日期之间的记录?

(Date = @Date) AND ...

这将始终要求 Date 等于 @Date 为真,不管其余的,除非出现 OR ...

假设这两个字段填写 @StartDate@EndDate(我不清楚,为什么会有第三个变量,@Date)你可能正在搜索一些东西喜欢:

@EndDate IS NULL
AND Date = @StartDate
 OR Date BETWEEN @StartDate
                 AND @EndDate

如果 @EndDate IS NULL(用户未在相应字段中输入任何内容)Date = @StartDate 必须为真。否则 Date BETWEEN @StartDate AND @EndDate(如果 @EndDate IS NULL 永远不会是真的,以防万一你想知道)。