1. 程式人生 > >Mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的解決方法

Mysql ERROR 1690 (22003): BIGINT UNSIGNED value is out of range in..的解決方法

問題描述
在寫mysql語句時會經常用到兩個時間戳相減來做查詢條件,

SELECT
abs(answer_time-question_time)
FROM
...

因為欄位型別為unsigned,所以當相減結果為負值時會報錯,如下:
這裡寫圖片描述
解決方法:
使用cast()修改欄位型別為signed

SELECT
abs(cast(answer_time as signed)-cast(question_time as signed))
FROM
...