我對mysql有點新,但是在查看了很多與數據庫中的十六進制值相關的SO樣本後,從十六進制轉換爲十進制,然後檢索在過去的24小時中的所有記錄,我認爲這會成功 - 在下面的查詢thetimestamp是加入每條記錄的時間,這是一個十六進制值:mysql字段有十六進制時間,需要過去24小時內的所有記錄
$query = "SELECT * FROM mytable"
. " WHERE timediff(NOW(), CONV(thetimestamp, 16, 10)) < '24:00:00'";
在閱讀各種SO例子,有很多方法可以在最近的24小時內添加記錄,這個看起來是最好用的,因爲如果我只能從數據庫中獲取我的十六進制時間值爲十進制數,那麼我懷疑上述方法是有效的。
我的問題是,我必須處理的數據庫存儲在十六進制的時間,在我的查詢上面顯示的字段,時間戳。
我想用CONVERT如我之前所做的那樣將轉換每條記錄的thetimestamp從十六進制到十進制,以便調用timeDiff測量()會成功。
當我運行查詢時,我得到一個有效的結果資源,但找到與我的查詢匹配的零個記錄,儘管事實上記錄已經在過去的24小時內添加了。
我在這裏使用CONV()錯誤嗎?
我現在正在查看一個數據庫,它的時間戳爲dateTime和十六進制....使我瘋狂。 – VikingBlooded
在你完全瘋狂之前轉換這些東西。我想不出爲什麼它們對於非本地數據類型是合理的。 – tadman