SQL 日期过滤器:Return 开始日期 = 结束日期时的结果

SQL Date Filter: Return results when start date = end date

:startDate 和 :endDate 从 html 输入中获得值,并作为参数与 AJAX 一起传递。我想在 :startDate 和 :endDate 之间 return 通知,但如果 startDate 等于 endDate 也 return 通知。(用户在两个输入框输入相同的日期)。

SELECT  name, FK_userID, subject, messageText, recipients, 
        CONVERT     (varchar, date) as date 
        FROM        notifications
        LEFT JOIN   users ON users.userID = 
                    notifications.FK_userID
        WHERE       date
        BETWEEN     :startDate AND :endDate
        OR          CONVERT (datetime, date) = :startDate
        ORDER BY    CONVERT (datetime, date, 100) desc

OR 语句打破了第一个条件。该查询仅适用于 BETWEEN 语句。如果用户为 startDate 和 endDate 输入相同的日期值,我希望查询的 OR 部分 return 具有与输入到两个输入框中的相同日期值的任何通知。 预期输出如下所示: 开始日期 = 10/10/2020 结束日期 = 10/10/2020

returns 日期值为 10/10/2020

的任何通知

您是说:

The query works with just the BETWEEN statement.

这是真的,因为 BETWEEN 具有包含范围意味着

date BETWEEN :startDate AND :endDate

等同于:

date >= :startDate AND date <= :endDate

这就是为什么您的 OR 条件不需要:

OR CONVERT (datetime, date) = :startDate