【发布时间】:2018-12-17 16:46:39
【问题描述】:
我在 Visual Studio 中有一个表,我想在其中为 StartDate 创建一个输入字段,为 EndDate 创建另一个输入字段,其中用户为两者选择一个日期,它将返回日期为该日期的所有记录在用户选择的开始日期和结束日期之间。我还希望用户可以选择仅搜索 StartDate 并将 EndDate 保留为空,因此该表基本上只有 2 个输入字段(如果 End Date 为空,则为 1 个)。
我现在有这个,它返回用户选择的日期,但只在那个日期:
(Date = @Date) AND (@Date BETWEEN @StartDate AND @EndDate)
@StartDate 是数据库中任何日期之前的日期。 @EndDate 是当天。这是为了防止用户输入的日期不在数据库的日期范围内,它会返回错误。
我已经尝试让参数@StartDate 等于@Date,所以当用户选择一个日期时,它会设置为开始日期。我也有输入字段供用户选择似乎有效的 EndDate。我只是无法让开始日期参数像我想要的那样工作。
这些是我尝试过的查询:
1.
(Date = @Date) AND (@StartDate = @Date) AND (@Date BETWEEN @StartDate AND @EndDate)
2.
(Date = @Date) AND (@Date BETWEEN @Date AND @EndDate)
如何修改此查询/参数以让用户在输入字段中选择开始日期和结束日期,并让表返回这些日期之间的所有记录?
【问题讨论】:
-
尝试将所有三行的第一个
AND关键字更改为OR。
标签: mysql sql visual-studio date between