php - MySQL 计算 INT UNSIGNED 上的负值

标签 php mysql

我的表格中有一个 start_date_time INT UNSIGNED 列。

我有一个这样的查询

... WHERE (g.start_date_time-$currentTime) > 0 ORDER BY (g.start_date_time-$currentTime)

我收到错误数值超出范围:1690 BIGINT UNSIGNED 值超出范围...。如果我将其设置为 SIGNED 当然一切正常,但我的问题是有没有办法保持它 UNSIGNED 但无论如何计算负值(我只需要计算,不要'不需要将它们存储在任何地方),或者我应该重新定义我的查询?

最佳答案

我认为你应该重新定义如下

WHERE g.start_date_time > $currentTime ORDER BY g.start_date_time

这将允许在 g.start_date_time 列上使用索引,并且您不必按 (g.start_date_time-$currentTime) 排序

关于php - MySQL 计算 INT UNSIGNED 上的负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10108486/

相关文章:

php - 仅加载数据库中的新行

javascript - 将 AJAX 添加到 PHP 表单

mysql - 获取范围之间的金额

子查询上的 MySQL 内连接

php - 我怎样才能找到我的查询的第二个最大值

php - 用户文件上传存储的最佳实践

php - 禁用自动提交的副作用

javascript - php echo javascript alert() 不工作

javascript - 检查文本输入是否不为空

javascript - Jplayer - 从 Mysql 结果创建动态播放列表