SQLite3不能在WHERE子句中添加?

时间:2012-02-21 02:21:30

标签: sqlite where-clause addition

我在SQLite3数据库上执行以下简单查询:

SELECT AField,AnotherField FROM ATable WHERE AnIntField>strftime('%s');

这样可以正常工作并返回预期的结果。

如果我执行略微修改的查询:

SELECT AField,AnotherField FROM ATable WHERE AnIntField+86400>strftime('%s');

然后我没有得到任何结果!这没有任何意义!我试过在AnIntField+86400周围加上括号,但这没有用。是的,AnIntField的值远大于strftime('%s'),因此不会返回不同的结果。

这种行为有什么理由吗?

1 个答案:

答案 0 :(得分:2)

这是一个完全猜测,但是如果你将AnIntField + 86400包装在与演员相当的SQLite3中会发生什么?

在TSQL中你会做这样的事情:

WHERE CAST(AnIntField + 86400 AS int) > strftime('%s')

我的想法是AnIntField + val作为附加而不是添加而出现。

实际上,如果强制转换不起作用,请尝试将选择更改为

SELECT AnIntField+86400 FROM ...

看看它吐出来的东西。