不能在列类型时间戳上应用where子句,其名称为"当"

时间:2016-04-29 05:32:23

标签: sql firebird

我有一个列为id(integer), emp_name(varchar2), when(timestamp)的表格。我想在名为WHEN的列上应用where子句。我正在尝试执行查询

select * from attendant where WHEN > 2016-04-28 10:05:30.0000;

但它给了我错误。

2 个答案:

答案 0 :(得分:2)

我非常确定WHEN是一个保留关键字,所以你必须逃避它。此外,您必须将日期时间值放在''

select * 
from attendant 
where "WHEN" > '2016-04-28 10:05:30.0000';

答案 1 :(得分:0)

因为whencase声明中使用的保留关键字 您可以像这样更改您的查询

select * 
from attendant 
where `WHEN` > '2016-04-28 10:05:30.0000';

即使用tick(`)来引用时间。

select * 
from attendant 
where attendant.WHEN > '2016-04-28 10:05:30.0000';

即点符号。