兩種常用MySql查詢時間段的方法

2021-07-04 16:49:53 字數 1359 閱讀 2337

mysql查詢時間段的方法很多,下面就為您介紹幾種最常用的mysql查詢時間段方法,如果您在mysql查詢時間段方面遇到過問題,不妨一看。

mysql的時間欄位有date、time、datetime、timestamp等,往往我們在儲存資料的時候將整個時間存在乙個欄位中,採用datetime型別;也可能採用將日期和時間分離,即乙個字段儲存date,乙個字段儲存時間time。無論怎麼儲存,在實際應用中,很可能會出現包含「時間段」型別的查詢,比如乙個訪問記錄資料庫,需要統計每天的訪問數量,這個每天就是乙個時間段。下面介紹mysql查詢時間段的兩種常見方法,其他資料庫也可以類似實現。

方法一:傳統方式,即指定開始時間和結束時間,用"between」或者"<",">"來建立條件,比如查詢2023年3月1日到2023年3月2日的資料條數,則可以使用

select count(*) from sometable where datetimecolumn

>

='2010-03-01 00:00:00' and   

datetimecolumn

<

'2010-03-02 00:00:00'  

但是,這種方法由於時間不是整數型資料,所以在比較的時候效率較低,所以如果資料量較大,可以將時間轉換為整數型的unix時間戳,這就是方法二。

方法二:unix時間戳,每個時間對應了乙個唯一的unix時間戳,該時間戳是從'1970-01-01 00:00:00' 為0開始計時,每秒增加1。mysql內建了傳統時間和unix時間的互換函式,分別為

unix_timestamp(datetime)

from_unixtime(unixtime)

比如執行select unix_timestamp('2010-03-01 00:00:00')

返回1267372800

執行select from_unixtime(1267372800)

返回'2010-03-01 00:00:00'

於是,我們可以將時間欄位裡的資料替換為整型的unix時間,這樣,比較時間就成為整數比較了,建立索引後能大大提高效率。在查詢的時候,需要把起點時間和結尾時間分別轉換為unix時間再進行比較,如

select count(*) from sometable where datetimecolumn

>

=unix_timestamp('2010-03-01 00:00:00') and  

datetimecolumn

<

unix_timestamp

('2010-03-02 00:00:00')  

也可以在呼叫程式中先轉換為unix時間再傳入mysql,總之這種方式有利於快速查詢時間段,不過顯示時間則需要再反轉一次。

mysql查詢時間段

閱讀需要 3 分鐘 內容 mysql 時間段查詢 一些時間的型別 及常用時間函式 日期型別 儲存空間 日期格式 日期範圍 datetime 8 bytes yyyy mm dd hh mm ss 1000 01 01 00 00 00 9999 12 31 23 59 59 timestamp 4 ...

MySql查詢時間段的方法

方法一 傳統方式,即指定開始時間和結束時間,用 between 或者 來建立條件,比如查詢2010年3月1日到2010年3月2日的資料條數,則可以使用 複製 如下 select count from sometable where datetimecolumn 2010 03 01 00 00 00...

MySql查詢時間段的方法

mysql的時間欄位有date time datetime timestamp等,往往我們在儲存資料的時候將整個時間存在乙個欄位中,採用datetime型別 也可能採用將日期和時間分離,即乙個字段儲存date,乙個字段儲存時間time。無論怎麼儲存,在實際應用中,很可能會出現包含 時間段 型別的查詢...