php - 选择比我的变量大的纪元时间戳

标签 php sql sqlite

这是为什么

SELECT strftime('%s', timestamp,'localtime') from locationLog WHERE strftime('%s', timestamp,'localtime') > 999999999999999999 ORDER BY _id DESC

当我的所有行的“时间戳”值都较低时返回任何输出

在我的例子中,上面的查询返回

1334735588
1334735349
1334734317
1334734178
1334734172
and so on...

它返回我的整个表格。

如果我切换><它什么也不返回。

我想我正在尝试比较不同类型的变量或类似的东西。

最佳答案

您正在将text值与integer值进行比较,因此sqlite将integer值转换为text ,并进行字符串比较:

sqlite> select strftime('%s', '2002-02-02', 'localtime');
1012611600
sqlite> select typeof(strftime('%s', '2002-02-02', 'localtime'));
text
sqlite> select typeof(999999999999999999);
integer
sqlite> select strftime('%s', '2002-02-02', 'localtime') > 999999999999999999;
1
sqlite> select cast(strftime('%s', '2002-02-02', 'localtime') as integer) > 999999999999999999;
0

如上所示,解决方案是将strftime的返回值转换为某种数字类型。

关于php - 选择比我的变量大的纪元时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10381842/

相关文章:

php - ACL ROLE_ADMIN 不起作用

php - 强制特定用户在 codeigniter 中注销并销毁他的 session

sql - SQL 中的双冒号 `::` 表示法

sql - 在 MySQL 中使用外键时出现问题

sql - 更新语句以重新排序表队列

java - Android从sqlite数据库中获取多个项目

iphone - Sqlite + 80K 行 + LIKE = 键盘延迟

java - android中sqlite无法创建表

php - 检查数据是否已经存在于MySQL中

Php - 如何在数组中存储 3 个元素的元组?