mysql日期範圍查找(兩個日期之間的記錄)

最近常用到mysql的datetime類型的日期範圍搜索,總結有以下幾種方式可以,可以查詢精確到秒之間的記錄。字符串日期可以直接和datetime類型之間比較,無需轉換,Mysql會將字符串類型日期轉換成長整型數字進行比較,當然你也可以轉換爲同一類型後再比較

mysql日期與字符串轉換函數

字符串轉日期:STR_TO_DATE('2019-07-25 00:00:33', '%Y-%m-%d %H:%i:%s')  ,走索引

日期轉字符串:DATE_FORMAT('2019-07-25 00:00:33', '%Y-%m-%d %H:%i:%s'),不走索引

舉例說明

如下表,查詢,create_time爲datetime類型,查詢兩個日期範圍內的數據。

方式一、between...and(推薦)

SELECT * FROM k_student WHERE create_time  between '2019-07-25 00:00:33' and '2019-07-25 00:54:33'

方式二、大小於號

SELECT * FROM k_student WHERE create_time >= '2019-07-25 00:00:33' AND create_time <= '2019-07-25 00:54:32'

方式三、轉換爲UNIX_TIMESTAMP比較,create_time若加了索引,不走索引 

SELECT * FROM k_student WHERE  UNIX_TIMESTAMP(create_time)  between UNIX_TIMESTAMP('2019-07-25 00:00:33') and UNIX_TIMESTAMP('2019-07-25 00:54:33')

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章