Mysql 時間戳未設定精度引發的血案

2021-09-27 12:49:03 字數 624 閱讀 4422

使用mysql少不了日期型別 平時直接用預設的配置 沒想到出現了修改完一條記錄後記錄數少一的情況....

簡單翻譯下:發生了一次update(影響1行) 一次select(結果兩行,update之前為3行)第一次update時候想把updatetime設定為2019-09-29 14:05:10.749 由於沒有設定精度 進製成了2019-09-29 14:05:11然後 在同一秒內 發生了select 想查詢updatetime小於2019-09-29 14:05:10.749的記錄 這自然是查不到的(不知道為什麼查詢時就不會進製了 可能是查詢時不用寫入?)

原因分析:1.**邏輯如果預設用了雙邊條件,即使不傳入條件,也會加上2023年到now的時間範圍(這其實不算大錯..)2.沒設定時間戳精度,預設只到秒解決方法:1.設定3位精度2.優化查詢邏輯 不傳入日期範圍的情況下不濫用between and 而是用單邊條件或者不用兩種方案任選即可 結合最好

ps:精度就是下面這個東西:

閱讀全文:

一起因MySQL時間戳精度引發的血案分析

寫www.cppcns.com在前面 最近工作中遇到兩例mysql時間戳相關的問題,乙個是mysql connector j a和msyql的精度不一致導致資料查不到 另一例是應用伺服器時區錯誤導致資料查詢不到。通過這篇文章,希望能夠解答關於mysql中時間戳的幾個問題 案例分析 datetime的...

php設定時間戳

一開始裝php的時候時間戳不是預設的,導致寫程式的時候時間戳莫名出現奇怪的問題。設定標準時間戳 開啟配置檔案 php.ini 找到 date.timezone 設定為prc即可 date defines the default timezone used by the date functions ...

history設定時間戳

linux檢視歷史命令,很關鍵!history,預設沒有時間戳。echo export histtimeformat f t whoami etc profile source etc profile 1.history的歷史命令儲存在 bash history 檔案中 僅僅對當前使用者有效,應設定...