如何解决Mysql BETWEEN 请求返回空行
我的 postgreSql 数据库中有一个类似的条目:
并使用此 sql 请求:
SELECT *
FROM "options"
WHERE 'startDate' >= '2021-05-01 00:00:00.000+00' AND 'startDate'
那应该返回我的条目,但它没有:(
我尝试了这个请求:
SELECT *
FROM "options"
WHERE 'startDate' BETWEEN '2021-05-01 00:00:00.000+00' AND '2021-05-31 00:00:00.000+00';
返回一个空行。
我也对这些请求做了一些测试:
SELECT * FROM "options" WHERE 'startDate' > '2021-05-31';
这会返回条目(它不应该是因为“startDate”是 2021-05-04 ......我也将 2021 替换为 2022/2030,无论未来的什么日期,它都会返回条目......
所以请大家帮忙!!!非常感谢!
解决方法
您正在将字符串与字符串进行比较。 试试:
SELECT * FROM options WHERE startDate > '2021-05-31';
如果上述方法不起作用,请尝试在列名周围使用双引号。
SELECT * FROM options WHERE "startDate" > '2021-05-31';
示例:https://dbfiddle.uk/?rdbms=postgres_13&fiddle=cdeaaf19845d51ea227ac18ed454857a
更多信息“为什么”:https://stackoverflow.com/a/2901499/1727039
,感谢您的帮助和关注! 它现在可以工作了,我只需要像这样对 startDate 字段使用双引号:
SELECT * FROM "options" WHERE "startDate" >= '2021-05-01' AND "startDate" <= '2021-05-31'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。