明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

MySql查詢時(shí)間段的方法示例代碼

[摘要]這篇文章主要介紹了MySql查詢時(shí)間段的方法,包括了傳統(tǒng)的針對時(shí)間字段的查詢方法與UNIX時(shí)間戳的查詢技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下本文實(shí)例講述了MySql查詢時(shí)間段的方法。分享給大家供大家參考。具體方法如下:MySql查詢時(shí)間段的方法未必人人都會(huì),下面為您介紹兩種MySql查詢時(shí)間...
這篇文章主要介紹了MySql查詢時(shí)間段的方法,包括了傳統(tǒng)的針對時(shí)間字段的查詢方法與UNIX時(shí)間戳的查詢技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下

本文實(shí)例講述了MySql查詢時(shí)間段的方法。分享給大家供大家參考。具體方法如下:

MySql查詢時(shí)間段的方法未必人人都會(huì),下面為您介紹兩種MySql查詢時(shí)間段的方法,供大家參考。

MySql的時(shí)間字段有date、time、datetime、timestamp等,往往我們在存儲(chǔ)數(shù)據(jù)的時(shí)候?qū)⒄麄(gè)時(shí)間存在一個(gè)字段中,采用datetime類型;也可能采用將日期和時(shí)間分離,即一個(gè)字段存儲(chǔ)date,一個(gè)字段存儲(chǔ)時(shí)間time。無論怎么存儲(chǔ),在實(shí)際應(yīng)用中,很可能會(huì)出現(xiàn)包含“時(shí)間段”類型的查詢,比如一個(gè)訪問記錄數(shù)據(jù)庫,需要統(tǒng)計(jì)每天的訪問數(shù)量,這個(gè)每天就是一個(gè)時(shí)間段。下面介紹MySql查詢時(shí)間段的兩種常見方法,其他數(shù)據(jù)庫也可以類似實(shí)現(xiàn)。

方法一:傳統(tǒng)方式,即指定開始時(shí)間和結(jié)束時(shí)間,用"between”或者"<",">"來建立條件,比如查詢2010年3月1日到2010年3月2日的數(shù)據(jù)條數(shù),則可以使用

代碼如下:

select count(*) from sometable where datetimecolumn>='2010-03-01 00:00:00' and datetimecolumn<'2010-03-02 00:00:00'

但是,這種方法由于時(shí)間不是整數(shù)型數(shù)據(jù),所以在比較的時(shí)候效率較低,所以如果數(shù)據(jù)量較大,可以將時(shí)間轉(zhuǎn)換為整數(shù)型的UNIX時(shí)間戳,這就是方法二。

方法二:UNIX時(shí)間戳,每個(gè)時(shí)間對應(yīng)了一個(gè)唯一的UNIX時(shí)間戳,該時(shí)間戳是從'1970-01-01 00:00:00' 為0開始計(jì)時(shí),每秒增加1。MySql內(nèi)置了傳統(tǒng)時(shí)間和UNIX時(shí)間的互換函數(shù),分別為:

UNIX_TIMESTAMP(datetime)
FROM_UNIXTIME(unixtime)

比如運(yùn)行

代碼如下:

SELECT UNIX_TIMESTAMP('2010-03-01 00:00:00')

返回1267372800

運(yùn)行

代碼如下:

SELECT FROM_UNIXTIME(1267372800)

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

于是,我們可以將時(shí)間字段里的數(shù)據(jù)替換為整型的UNIX時(shí)間,這樣,比較時(shí)間就成為整數(shù)比較了,建立索引后能大大提高效率。在查詢的時(shí)候,需要把起點(diǎn)時(shí)間和結(jié)尾時(shí)間分別轉(zhuǎn)換為UNIX時(shí)間再進(jìn)行比較,如:

代碼如下:

select count(*) from sometable where datetimecolumn>=UNIX_TIMESTAMP('2010-03-01 00:00:00') and datetimecolumn<UNIX_TIMESTAMP('2010-03-02 00:00:00')

也可以在調(diào)用程序中先轉(zhuǎn)換為UNIX時(shí)間再傳入MySql,總之這種方式有利于快速查詢時(shí)間段,不過顯示時(shí)間則需要再反轉(zhuǎn)一次。

以上就是MySql查詢時(shí)間段的方法示例代碼的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。