一、時間戳的定義
時間戳指格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。
二、時間格式轉時間戳的方法
使用unix_timestamp函數,如下:SELECT?UNIX_TIMESTAMP();//返回當前時間戳
SELECT?UNIX_TIMESTAMP('2017-12-16?17:29:56')?AS?t;?//返回指定時間的時間戳
三、時間戳轉為時間的方法
使用from_unixtime函數,如下:SELECT?FROM_UNIXTIME(1513416847)?AS?t;
SELECT?FROM_UNIXTIME(1513416847,?'%Y年%m月%d日?%H時%i分%s秒')?AS?t;
可以看出from_unixtime函數有兩個參數,第一個代表需要進行轉換的時間戳,第二個非必填,代表需要返回的時間格式,默認的是'%Y%m%d %H:%i:%s'。當然我們可以定制,比如只想返回年份,如下:SELECT?FROM_UNIXTIME(1513416847,?'%Y')?AS?t;
利用這個函數,我們可以很容易取出文章的存檔,sql如下:
在表中create_time字段類型為int(10)
四、mysql 時間戳的限制
目前timestamp所能表示的范圍在1970-2038之間,超過這個范圍UNIX_TIMESTAMP得到的值是0。如下