mysql 時(shí)間類型 字段(精確到時(shí)分秒) 怎么比較?
問題描述
我需要根據(jù)create_time字段來篩選數(shù)據(jù),現(xiàn)在sql 語(yǔ)句如下:
SELECT * FROM `sbhf_alarm` sa WHEREunix_timestamp(sa.create_time) BETWEEN unix_timestamp(’2016-05-25 14:07:56’)AND unix_timestamp(’2017-05-25 14:07:56’)
但是,我發(fā)現(xiàn)這種方法由個(gè)bug, 就是,當(dāng)上限時(shí)間(上圖箭頭)過大的時(shí)候,會(huì)報(bào)錯(cuò)。如下圖:
原因是,unix_timestamp函數(shù),將時(shí)間轉(zhuǎn)化為秒,時(shí)間不能太大。
問題:是否還有其他什么更好的方法來篩選時(shí)間? 這種問題一般是怎么解決的?請(qǐng)大神賜教,感激不盡……
問題解答
回答1:UNIX_TIMESTAMP返回的是INTEGER而不是BIGINT,所以不能超過2038年(又一說2106年)。
為什么不試試 create_time BETWEEN ’2016-05-25 14:07:56 AND ’2017-05-25 14:07:56’ 呢?
另外,如果追求計(jì)算的便捷性,建議時(shí)間列類型設(shè)為BIGINT,存放以毫秒為單位的Unix時(shí)間戳,這樣就不會(huì)有2038問題了。
回答2:create_time BETWEEN ’2016-05-25 14:07:56’ AND ’2017-05-25 14:07:56’
如果加上毫秒的話,注意用冒號(hào):,
create_time BETWEEN ’2016-05-25 14:07:56:000’ AND ’2017-05-25 14:07:56:000’
相關(guān)文章:
1. ios - vue-cli開發(fā)項(xiàng)目webstrom會(huì)在stylus樣式報(bào)錯(cuò),飆紅,請(qǐng)大神幫忙2. css - 移動(dòng)端 oppo 手機(jī)之 Border-radius3. javascript - vue提示語(yǔ)法錯(cuò)誤,請(qǐng)問錯(cuò)誤在哪?4. 淺談vue生命周期共有幾個(gè)階段?分別是什么?5. index.php錯(cuò)誤,求指點(diǎn)6. angular.js - angularjs中添加高德地圖API,地圖顯示不正常,控制臺(tái)報(bào)錯(cuò),何解?7. javascript - 為什么我的animation-fill-mode 設(shè)置不生效8. html - JavaScript的Dom操作如何改變子元素的文本內(nèi)容9. javascript - vue.js如何遞歸渲染組件.10. python - 抓包只抓到j(luò)son,真實(shí)的地址卻找不到
