首页 > 解决方案 > WHERE 语句不适用于数字和日期(SQLite)

问题描述

我在 DBlite 程序(我必须在大学使用的垃圾程序)中遇到了 where 部分的日期和数字的问题。我的代码如下所示:

SELECT Customers_Details_FULL_LOCKED.email
FROM Customers_Details_FULL_LOCKED
LEFT JOIN Purchases_FULL_LOCKED ON Customers_Details_FULL_LOCKED.customer_id 
= Purchases_FULL_LOCKED.Cust_ID
WHERE Purchases_FULL_LOCKED.Purchase_Price = '>20' AND 
Customers_Details_FULL_LOCKED.marketing_opt_in = 'Yes' AND 
Purchases_FULL_LOCKED.Purchase_Date = '<2014-01-01';

目标:我希望我的代码显示购买超过 20 件商品的人的电子邮件,他们选择了营销并且购买日期在 2014 年之前。

我知道的:

我知道 opt_in 声明有效,但购买价格和购买日期都不起作用,单独或一起。

我也知道,对于购买价格来说,无论是小数还是 CAST 都无关紧要,似乎仍然不起作用。

标签: sqlsqlite

解决方案


如果 Purchase_Price 是一个数字值,您应该将该列与一个运算符<, >, >= ..和一个数字值进行比较。

Purchase_Price > 20而不是Purchase_Price = '>20'
Here 它告诉:Purchase_Price 必须大于 20
而不是Purchase_Price 等于文本 '>20'

与日期相同,但您应该比较日期值


推荐阅读