mysql 時間類型 字段(精確到時分秒) 怎么比較?
問題描述
我需要根據create_time字段來篩選數據,現在sql 語句如下:
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’)
但是,我發現這種方法由個bug, 就是,當上限時間(上圖箭頭)過大的時候,會報錯。如下圖:
原因是,unix_timestamp函數,將時間轉化為秒,時間不能太大。
問題:是否還有其他什么更好的方法來篩選時間? 這種問題一般是怎么解決的?請大神賜教,感激不盡……
問題解答
回答1:UNIX_TIMESTAMP返回的是INTEGER而不是BIGINT,所以不能超過2038年(又一說2106年)。
為什么不試試 create_time BETWEEN ’2016-05-25 14:07:56 AND ’2017-05-25 14:07:56’ 呢?
另外,如果追求計算的便捷性,建議時間列類型設為BIGINT,存放以毫秒為單位的Unix時間戳,這樣就不會有2038問題了。
回答2:create_time BETWEEN ’2016-05-25 14:07:56’ AND ’2017-05-25 14:07:56’
如果加上毫秒的話,注意用冒號:,
create_time BETWEEN ’2016-05-25 14:07:56:000’ AND ’2017-05-25 14:07:56:000’
相關文章:
1. html5 - 最近在自學react 求一個react表單提交的例子2. 老師您好!我有一個問題、3. javascript - jq 上傳圖片成功后添加一個新的上傳框時出現問題4. python - Django ManyToManyField 字段數據在 admin后臺 顯示不正確,這是怎么回事?5. mysql - 千萬數據 分頁,當偏移量 原來越大時,怎么優化速度6. python - django中普通用戶如何利用admin修改自己的信息?7. javascript - 微信內置瀏覽器的ua是多少?8. python django工程上傳一張照片調用python方法時報錯,請問如何處理?9. jquery清除input type為password?10. 使用PHP和MySQL的UNIQUE如何像京東注冊那樣保證用戶名唯一?
