我的表格中有一个 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/