MySql查詢時(shí)間段的方法
本文實(shí)例講述了MySql查詢時(shí)間段的方法。分享給大家供大家參考。具體方法如下:
MySql查詢時(shí)間段的方法未必人人都會(huì),下面為您介紹兩種MySql查詢時(shí)間段的方法,供大家參考。
MySql的時(shí)間字段有date、time、datetime、timestamp等,往往我們?cè)诖鎯?chǔ)數(shù)據(jù)的時(shí)候?qū)⒄麄€(gè)時(shí)間存在一個(gè)字段中,采用datetime類型;也可能采用將日期和時(shí)間分離,即一個(gè)字段存儲(chǔ)date,一個(gè)字段存儲(chǔ)時(shí)間time。無(wú)論怎么存儲(chǔ),在實(shí)際應(yīng)用中,很可能會(huì)出現(xiàn)包含“時(shí)間段”類型的查詢,比如一個(gè)訪問(wèn)記錄數(shù)據(jù)庫(kù),需要統(tǒng)計(jì)每天的訪問(wèn)數(shù)量,這個(gè)每天就是一個(gè)時(shí)間段。下面介紹MySql查詢時(shí)間段的兩種常見(jiàn)方法,其他數(shù)據(jù)庫(kù)也可以類似實(shí)現(xiàn)。
方法一:傳統(tǒng)方式,即指定開(kāi)始時(shí)間和結(jié)束時(shí)間,用"between”或者"<",">"來(lái)建立條件,比如查詢2010年3月1日到2010年3月2日的數(shù)據(jù)條數(shù),則可以使用
但是,這種方法由于時(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開(kāi)始計(jì)時(shí),每秒增加1。MySql內(nèi)置了傳統(tǒng)時(shí)間和UNIX時(shí)間的互換函數(shù),分別為:
UNIX_TIMESTAMP(datetime)
FROM_UNIXTIME(unixtime)
比如運(yùn)行
返回1267372800
運(yùn)行
返回'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)行比較,如:
也可以在調(diào)用程序中先轉(zhuǎn)換為UNIX時(shí)間再傳入MySql,總之這種方式有利于快速查詢時(shí)間段,不過(guò)顯示時(shí)間則需要再反轉(zhuǎn)一次。
希望本文所述對(duì)大家的MySQL數(shù)據(jù)庫(kù)程序設(shè)計(jì)有所幫助。
相關(guān)文章
MySQL5.6解壓版服務(wù)無(wú)法啟動(dòng)之系統(tǒng)錯(cuò)誤1067問(wèn)題
這篇文章主要介紹了MySQL5.6解壓版服務(wù)無(wú)法啟動(dòng)—系統(tǒng)錯(cuò)誤1067問(wèn)題及解決方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08Mysql 查詢JSON結(jié)果的相關(guān)函數(shù)匯總
這篇文章主要介紹了Mysql 查詢 JSON 結(jié)果的相關(guān)函數(shù)匯總,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下2020-11-11深入解析mysql.sock不見(jiàn)的問(wèn)題
本篇文章是對(duì)mysql.sock不見(jiàn)的問(wèn)題進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06關(guān)于MySQL?B+樹(shù)索引與哈希索引詳解
索引是一種特殊的數(shù)據(jù)庫(kù)結(jié)構(gòu),被設(shè)計(jì)用來(lái)快速查詢數(shù)據(jù)庫(kù)表中的特定記錄,下面這篇文章主要給大家介紹了關(guān)于MySQL?B+樹(shù)索引與哈希索引的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03CentOS 7下MySQL服務(wù)啟動(dòng)失敗的快速解決方法
CentOS 7下MySQL服務(wù)啟動(dòng)失敗怎么辦?下面小編就為大家?guī)?lái)一篇CentOS 7下MySQL服務(wù)啟動(dòng)失敗的快速解決方法?,F(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-03-03MySQL中Like模糊查詢速度太慢該如何進(jìn)行優(yōu)化
在業(yè)務(wù)場(chǎng)景中經(jīng)常會(huì)用到like模糊查詢,但是大家都知道,like是用不到索引的,所以當(dāng)數(shù)據(jù)量非常大時(shí),速度會(huì)非常慢,這篇文章主要給大家介紹了關(guān)于MySQL中Like模糊查詢速度太慢該如何進(jìn)行優(yōu)化的相關(guān)資料,需要的朋友可以參考下2021-12-12MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法
這篇文章主要介紹了MySQL在Linux系統(tǒng)中隱藏命令行中的密碼的方法,作者利用簡(jiǎn)單的C程序?qū)崿F(xiàn),需要的朋友可以參考下2015-06-06