【发布时间】:2014-05-13 18:43:58
【问题描述】:
我有以下 SQLite 查询。它旨在删除过去三秒内没有更新时间的所有条目。
$expireTime = time() - 3;
$dbh->query("DELETE FROM `whois_online` WHERE (strftime('%s', `time`) > $expireTime)");
此查询不返回表中的任何条目,即使它应该返回。但是,将 > 更改为 < 会导致出现整体,即使它正在比较的数字不应该让这种情况发生。
如果我用数字明确替换expireTime:
sqlite> SELECT strftime('%s', `time`) from whois_online WHERE (strftime('%s', `time`) > 1400005440);
我得到以下结果:
1400005363
1400005365
1400005368
1400005443
这显然在逻辑上不正确,因为所有这些数字都小于 1400005440。这是怎么回事?
【问题讨论】: