我应该如何查询数据中有小数的整数?

How should I query an integer where there are decimals in the data?

SELECT * FROM table1 WHERE spent>= '1000'

该查询仍会显示 598.99 和 230.909 等数字。我的问题是为什么当我要求搜索超过或等于 1000 时它会这样做。无论如何要查询所以它只显示等于和超过 1000?

您必须比较数字才能进行数字比较。

使用

WHERE CAST(spent AS numeric) >= 1000

发生这种情况是因为您的 '1000' 是一个文本值。另一个值也是(或转换为)文本,因此您最终会进行逐字节比较。

598.99 大于 1000 因为 5... 大于 1....

转换为数字类型以进行适当的比较:

SELECT * FROM table1 WHERE spent::numeric >= '1000'::numeric

或者简单地说:

SELECT * FROM table1 WHERE spent::numeric >= 1000