前言
在工作中遇到一個情況:
日志系統(tǒng)的表中,時間字段存儲的是13位時間戳timestamp而不是日期數(shù)據(jù),而在業(yè)務(wù)中,我們需要通過時間和ip來進(jìn)行分組查詢給定日期的數(shù)據(jù).
當(dāng)然你可以選擇在業(yè)務(wù)層先將傳入的日期轉(zhuǎn)為時間戳,再去進(jìn)行查詢,但是既然mysql既然可以直接進(jìn)行轉(zhuǎn)換,那么省去在業(yè)務(wù)層的操作何樂而不為呢?
1.首先介紹一下mysql中將時間戳和日期互相轉(zhuǎn)換的函數(shù):
時間戳轉(zhuǎn)換成日期FROM_UNIXTIME():
FROM_UNIXTIME(1429063399,'%Y-%m-%d %H:%i:%s')
如果不需要時分秒,'%Y-%m-%d'就好
上面例子中使用的是10位時間戳,若是13位時間戳需要/1000,如下:
FROM_UNIXTIME(1429063399123/1000,'%Y-%m-%d %H:%i:%s')
日期轉(zhuǎn)換為時間戳UNIX_TIMESTAMP():
UNIX_TIMESTAMP('2015-04-15')
%Y年、%m月、%d日、%H時、%i分、%s秒最為常用
2.實際使用
在我實際使用中,我還將
DATE_FORMAT()函數(shù)(DATE_FORMAT(data,format) 函數(shù)用于以不同的格式顯示日期/時間數(shù)據(jù))和FROM_UNIXTIME()來進(jìn)行轉(zhuǎn)換:
DATE_FORMAT(FROM_UNIXTIME(DateTime/1000),'%Y-%m-%d')
SELECT ip,DATE_FORMAT(FROM_UNIXTIME(timestamp/1000),'%Y-%m-%d') as date,count(*) FROM s_page where DATE_FORMAT(FROM_UNIXTIME(timestamp/1000),'%Y-%m-%d') = ? GROUP BY ip,DATE_FORMAT(FROM_UNIXTIME(timestamp/1000),'%Y-%m-%d')
?為占位符
總結(jié)
到此這篇關(guān)于Mysql中時間戳轉(zhuǎn)為Date的文章就介紹到這了,更多相關(guān)Mysql時間戳轉(zhuǎn)為Date內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
標(biāo)簽:合肥 牡丹江 呼和浩特 阿里 公主嶺 惠州 天津 沈陽
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql中時間戳轉(zhuǎn)為Date的方法示例》,本文關(guān)鍵詞 Mysql,中,時間,戳,轉(zhuǎn)為,Date,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。