错误:指定了非布尔类型的表达式

时间:2019-01-09 21:13:49

标签: mysql sql

select * from database where CREATION DATE >= "2018-11-10 00:00:00.0"

我是SQL的新手,此语句中有任何错误??

我收到此错误,这是在需要条件的上下文中指定的非布尔类型的表达式

2 个答案:

答案 0 :(得分:0)

我假设“ CREATION DATE”是您的实际字段。您需要在其周围加上方括号,以便将其视为一个字段。

SELECT * 
FROM database 
WHERE [CREATION DATE] >= "2018-11-10 00:00:00.0"

答案 1 :(得分:0)

在MySQL中,我建议使用反引号对日期的列名和单引号进行转义。您也不需要时间部分。

所以:

select *
from database
where `CREATION DATE` >= '2018-11-10'

标准的转义字符是双引号,因此您也可以将它们用作标识符:

select *
from database
where "CREATION DATE" >= '2018-11-10'

但是最好的方法是删除空间,因此不必转义:

alter table database rename column `CREATION DATE` to creation_date;

然后您可以简单地使用:

select *
from database
where creation_date >= '2018-11-10'