下午好,資料發送到資料庫:頻道:966735614273806457 訊息:966735619332136962
它們在資料庫中正確顯示。但是當我嘗試獲取它們時,我會得到一個帶有四舍五入數字的物件,例如:
{ id: 29, channel: 966735614273806500, message: 966735619332137000 }
我通過以下查詢獲取資料:
const sqlq = `SELECT * FROM report`
await data.db.all(sqlq,[],(err,row)=>{
console.log(row[row.length-1])
})
一般來說,我的任務是每次獲取資料庫的最后一個元素,如果不將所有元素添加到陣列中仍有可能獲取它,那么我想知道這個。我正在使用 sqlite 庫
uj5u.com熱心網友回復:
ABIGINT最多可以存盤這些值的 10 倍的整數,因此它們實際上可能是數字的。您可能需要檢查資料型別以確定它們是否為字串。
這些值是JavaScript 的 MAX_SAFE_INTEGER 的100 多倍。無論存盤在資料庫中的型別如何,您可能都希望將輸出作為字串處理。根據背景關系,這看起來像一個屬性,所以我無法想象你需要對其進行任何數學運算。
不要使用SELECT *. 要刻意。對資料庫的更改很容易破壞您的代碼。你可能想要類似的東西
const sqlq = `SELECT id, cast(channel as varchar(25)) as channel, cast(message as varchar(25)) as message FROM report`
await data.db.all(sqlq,[],(err,row)=>{
console.log(row[row.length-1])
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/463249.html
