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
: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