前言
在工作中遇到一個情況:
日志系統的表中,時間字段存儲的是13位時間戳timestamp而不是日期數據,而在業務中,我們需要通過時間和ip來進行分組查詢給定日期的數據.
當然你可以選擇在業務層先將傳入的日期轉為時間戳,再去進行查詢,但是既然mysql既然可以直接進行轉換,那么省去在業務層的操作何樂而不為呢?
1.首先介紹一下mysql中將時間戳和日期互相轉換的函數:
時間戳轉換成日期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')
日期轉換為時間戳UNIX_TIMESTAMP():
UNIX_TIMESTAMP('2015-04-15')
%Y年、%m月、%d日、%H時、%i分、%s秒最為常用
2.實際使用
在我實際使用中,我還將
DATE_FORMAT()函數(DATE_FORMAT(data,format) 函數用于以不同的格式顯示日期/時間數據)和FROM_UNIXTIME()來進行轉換:
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')
?為占位符
總結
到此這篇關于Mysql中時間戳轉為Date的文章就介紹到這了,更多相關Mysql時間戳轉為Date內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- MySQL中日期和時間戳互相轉換的函數和方法
- 詳解MySQL日期 字符串 時間戳互轉
- PHP+Mysql日期時間如何轉換(UNIX時間戳和格式化日期)
- mysql時間戳轉成常用可讀時間格式的兩種方法
- mysql之TIMESTAMP(時間戳)用法詳解
- mysql 獲取今天、昨天0點時間戳的實例
- MySQL表中添加時間戳的幾種方法