如何解决SQL日期过滤器:当开始日期=结束日期
从HTML输入中给:startDate和:endDate值,并将其作为参数传递给AJAX。我想返回:startDate和:endDate之间的通知,但是如果startDate等于endDate,也要返回通知。(用户在两个输入框中输入相同的日期)。
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部分返回与两个输入框中输入的日期值相同的任何通知。 预期输出如下所示: startDate = 10/10/2020 endDate = 10/10/2020
返回日期值为10/10/2020的所有通知
解决方法
您在说:
查询仅适用于BETWEEN语句。
这是正确的,因为BETWEEN具有包含范围的含义
date BETWEEN :startDate AND :endDate
与以下相同:
date >= :startDate AND date <= :endDate
这就是为什么您的OR
条件不需要的原因:
OR CONVERT (datetime,date) = :startDate
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。