【发布时间】:2021-06-01 13:59:26
【问题描述】:
我的 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-01 00:00:00.000+00' AND startDate <= '2021-05-31 00:00:00.000+00'; -
我删除了冲突的 DBMS 标签。请为您真正使用的数据库产品添加一个标签。
-
'startDate' >= '2021-05-01 00:00:00.000+00'将 字符串'startDate'与字符串'2021-05-01 00:00:00.000+00'进行比较,这总是正确的,因为字符s大于字符2: @ 987654321@ -
不要将列名用单引号括起来。我认为这是一个错字,并投票结束。