最近在工做中經過接口獲取時間字段爲時間戳的值,直接入庫後再頁面查詢時間格式時候須要經過SQL語句將時間戳格式裝換爲時間格式進行比較,首先咱們須要知道時間戳格式是怎麼產生的,: Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義爲從格林威治時間1970年01月01日00時00分00秒起至如今的總秒數。Unix時間戳不只被使用在Unix系統、類Unix系統中spa
時間類型轉換爲時間戳會有10位和13位兩種區別,10 位的時間戳的源時間格式爲 yyyy-MM-dd hh:MM:ss .000 毫秒位數爲三個零,而13位的時間戳格式是包含了毫秒數的。unix
10位的時間戳格式在SQL中轉換爲普通時間格式的方法:DATEADD(s, Unix timestamp+8*3600, '1970-01-01 00:00:00')接口
13 位的時間戳轉換爲普通時間格式不能直接使用這種方式,因此在這裏個人作法是截取前邊10位爲無毫秒的時間格式的時間戳,因此寫法:io
DATEADD(S,CAST( SUBSTRING(CreateTime,1,10) AS INT ) + 8 * 3600,'1970-01-01 00:00:00 ') 方法
在SQL中普通時間格式轉爲時間戳格式:DATEDIFF(s, '1970-01-01 00:00:00', time) im
在不一樣的語言中實現的方式不一樣,參見 http://tool.chinaz.com/Tools/unixtime.aspx 時間戳