Unix時間戳(Unix timestamp),是一種時間表示方式,定義爲從格林威治時間1970年01月01日00時00分00秒起至如今的總秒數。
在MySQL中如何格式化時間戳?
在mysql中由於timestamp沒法支持到毫秒,因此不少時候採用毫秒進行存儲。那麼如何將存儲在數據庫中Int類型的時間,如:
1344954515
,轉換成咱們正常能夠肉眼能看懂的時間格式呢?
咱們通常都使用FROM_UNIXTIME函數。
FROM_UNIXTIME(unix_timestamp,format)
unix_timestamp爲須要處理的時間戳(該參數是Unix 時間戳),能夠是字段名,也能夠直接是Unix 時間戳字符串。
format爲須要轉換的格式
mysql官方手冊的解釋爲:返回'YYYY-MM-DD HH:MM:SS'或YYYYMMDDHHMMSS 格式值的unix_timestamp參數表示,具體格式取決於該函數是否用在字符串中或是數字語境中。若format 已經給出,則結果的格式是根據format 字符串而定。
format的格式和平常的編程語言的時間格式是保持一致的。
例如:
mysql> select FROM_UNIXTIME(1344954515,'%Y-%m-%d %H:%i:%S');
+-----------------------------------------------+
| FROM_UNIXTIME(1344954515,'%Y-%m-%d %H:%i:%S') |
+-----------------------------------------------+
| 2012-08-14 22:28:35 |
+-----------------------------------------------+
1 row in set (0.00 sec)
UNIX_TIMESTAMP()是與之相對的時間函數
UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)
官方手冊解釋爲:若無參數調用,則返回一個 Unix timestamp ('1970-01-01 00:00:00' GMT 以後的秒數) 做爲無符號整數。若用date 來調用 UNIX_TIMESTAMP(),它會將參數值以'1970-01-01 00:00:00' GMT後的秒數的形式返回。
date 能夠是一個 DATE 字符串、一個 DATETIME字符串、一個 TIMESTAMP或一個當地時間的YYMMDD 或YYYMMDD格式的數字。
例如:
mysql> select UNIX_TIMESTAMP('2012-09-04 18:17:23');
+---------------------------------------+
| UNIX_TIMESTAMP('2012-09-04 18:17:23') |
+---------------------------------------+
| 1346753843 |
+---------------------------------------+
1 row in set (0.00 sec)
實際應用中,咱們能夠將格式轉換爲毫秒的與數據庫中進行比較,也能夠將數據庫的Int格式轉換爲普通格式進行比較。
例如:查詢全部建立日期大於2012-09-03 18:00:00以後的博客數據
方法一:將日期轉換爲int比較
select * from blog where createdTime > UNIX_TIMESTAMP('2012-09-03 18:00:00' );
方法二:將int轉換爲時間格式比較
select * from blog where FROM_UNIXTIME(createdTime, '%Y-%m-%d %H:%i:%S') > '2012-09-03 18:00:00';
下列修飾符能夠被用在format字符串中,能夠組合一些常見日期格式:
%M 月名字(January……December)
%W 星期名字(Sunday……Saturday)
%D 有英語前綴的月份的日期(1st, 2nd, 3rd, 等等。)
%Y 年, 數字, 4 位
%y 年, 數字, 2 位
%a 縮寫的星期名字(Sun……Sat)
%d 月份中的天數, 數字(00……31)
%e 月份中的天數, 數字(0……31)
%m 月, 數字(01……12)
%c 月, 數字(1……12)
%b 縮寫的月份名字(Jan……Dec)
%j 一年中的天數(001……366)
%H 小時(00……23)
%k 小時(0……23)
%h 小時(01……12)
%I 小時(01……12)
%i 分鐘, 數字(00……59)
%r 時間,12 小時(hh:mm:ss [AP]M)
%T 時間,24 小時(hh:mm:ss)
%S 秒(00……59)
%s 秒(00……59)
%p AM或PM
%w 一個星期中的天數(0=Sunday ……6=Saturday )
%U 星期(0……52), 這裏星期天是星期的第一天
%u 星期(0……52), 這裏星期一是星期的第一天
%% 一個文字「%」。html
本文首發於度外網絡官方博客,轉載請註明出處:http://www.duwaiweb.com/blog/20120904_ce7309cf-e25a-45f7-8397-0700fa459466.htmljava
更多java畢業設計請訪問:http://www.lunwenhui.com/java/page_5.html mysql