1. 程式人生 > 資料庫 >Mysql中時間戳轉為Date的方法示例

Mysql中時間戳轉為Date的方法示例

前言

在工作中遇到一個情況:

日誌系統的表中,時間欄位儲存的是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,'%Y-%m-%d')

?為佔位符

總結

到此這篇關於Mysql中時間戳轉為Date的文章就介紹到這了,更多相關Mysql時間戳轉為Date內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!