MySQL中的時(shí)間戳是以秒為單位存儲(chǔ)的,但有些情況下需要精確到毫秒的日期。那么怎樣將毫秒時(shí)間戳轉(zhuǎn)換為日期呢?接下來我們來一步步介紹。
首先,使用FROM_UNIXTIME()函數(shù)將時(shí)間戳轉(zhuǎn)換為日期。FROM_UNIXTIME()函數(shù)接收一個(gè)以秒為單位的時(shí)間戳作為參數(shù),并返回一個(gè)格式化后的日期字符串。讓我們來看一個(gè)例子:
SELECT FROM_UNIXTIME(1502995920000/1000);
上面的例子中,我們將毫秒時(shí)間戳除以1000以后作為FROM_UNIXTIME()函數(shù)的參數(shù)。因?yàn)镸ySQL中的時(shí)間戳是以秒為單位存儲(chǔ)的,所以我們需要將毫秒時(shí)間戳轉(zhuǎn)換為秒。
接下來,我們需要將日期字符串的格式化。默認(rèn)情況下,F(xiàn)ROM_UNIXTIME()函數(shù)返回的日期字符串是以"YYYY-MM-DD HH:MM:SS"的格式顯示的。如果需要自定義日期格式,可以使用DATE_FORMAT()函數(shù)。例如:
SELECT DATE_FORMAT(FROM_UNIXTIME(1502995920000/1000), '%Y-%m-%d %H:%i:%s.%f');
上面的例子中,我們使用了DATE_FORMAT()函數(shù)將日期字符串格式化為"YYYY-MM-DD HH:MM:SS.ssssss"的格式,其中,%f表示毫秒。
除此之外,還有一種更簡(jiǎn)單的方法可以實(shí)現(xiàn)將毫秒時(shí)間戳轉(zhuǎn)換為日期,那就是使用FROM_UNIXTIME()函數(shù)的第二個(gè)可選參數(shù)microseconds。microseconds是一個(gè)布爾值,默認(rèn)為false,表示返回的日期字符串是否包含微秒。將microseconds設(shè)置為true后,F(xiàn)ROM_UNIXTIME()函數(shù)會(huì)返回一個(gè)格式為"YYYY-MM-DD HH:MM:SS.ssssss"的日期字符串,其中,ssssss表示微秒。例如:
SELECT FROM_UNIXTIME(1502995920000/1000, true);
上面的例子中,我們將microseconds設(shè)置為了true,F(xiàn)ROM_UNIXTIME()函數(shù)會(huì)返回一個(gè)包含微秒的日期字符串。