新聞中心
MySql查詢時(shí)間段的方法很多,下面就為您介紹幾種最常用的MySql查詢時(shí)間段方法,如果您在MySql查詢時(shí)間段方面遇到過問題,不妨一看。

創(chuàng)新互聯(lián)建站業(yè)務(wù)包括:成品網(wǎng)站、企業(yè)產(chǎn)品展示型網(wǎng)站建設(shè)、成都品牌網(wǎng)站建設(shè)、電子商務(wù)型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站制作(多語(yǔ)言)、成都商城網(wǎng)站開發(fā)、定制制作、營(yíng)銷型網(wǎng)站建設(shè)等。效率優(yōu)先,品質(zhì)保證,用心服務(wù)是我們的核心價(jià)值觀,我們將繼續(xù)以良好的信譽(yù)為基礎(chǔ),秉承穩(wěn)固與發(fā)展、求實(shí)與創(chuàng)新的精神,為客戶提供更全面、更優(yōu)質(zhì)的互聯(lián)網(wǎng)服務(wù)!
MySql的時(shí)間字段有date、time、datetime、timestamp等,往往我們?cè)诖鎯?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ù)庫(kù),需要統(tǒng)計(jì)每天的訪問數(shù)量,這個(gè)每天就是一個(gè)時(shí)間段。下面介紹MySql查詢時(shí)間段的兩種常見方法,其他數(shù)據(jù)庫(kù)也可以類似實(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í)間對(duì)應(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
也可以在調(diào)用程序中先轉(zhuǎn)換為UNIX時(shí)間再傳入MySql,總之這種方式有利于快速查詢時(shí)間段,不過顯示時(shí)間則需要再反轉(zhuǎn)一次。
【編輯推薦】
深度解析MySQL查詢緩存機(jī)制
MySQL無重復(fù)查詢的實(shí)現(xiàn)
MySQL中SELECT命令的特殊用法
mysql命令行參數(shù)簡(jiǎn)介
Mysql命令行導(dǎo)入sql數(shù)據(jù)的實(shí)現(xiàn)
本文題目:兩種常用MySql查詢時(shí)間段的方法
文章出自:http://www.5511xx.com/article/cddesho.html


咨詢
建站咨詢
