在設計數據庫報表中時間字段時,有的時候可以設計爲DateTime類型,但是在有的情況下,我們需要設計成BigInt類型,然後再持久化的時候可以傳入但時間的毫秒數(當然這個毫秒數是距離1970-01-01 08:00:00.000這個時間點的),所以在數據查詢的時候需要顯示能夠看懂的時間格式,而不是毫秒數。如下:
這個prize_time字段便是毫秒數,所以需要轉換,在SqlServer中進行查詢的時候,可以用DATEADD函數,函數具體的用法:
定義和用法
DATEADD() 函數在日期中添加或減去指定的時間間隔。
語法
DATEADD(datepart,number,date)
date 參數是合法的日期表達式。number 是您希望添加的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。
datepart 參數可以是下列的值:
datepart | 縮寫 |
---|---|
年 | yy, yyyy |
季度 | qq, q |
月 | mm, m |
年中的日 | dy, y |
日 | dd, d |
周 | wk, ww |
星期 | dw, w |
小時 | hh |
分鐘 | mi, n |
秒 | ss, s |
毫秒 | ms |
微妙 | mcs |
納秒 | ns |
這個函數可以進行轉換,本例中可以用dateadd(S,[prize_time]/1000,'1970-01-01 08:00:00') prize_time進行轉化!
Mysql數據庫:
格式化毫秒數時間
SELECT FROM_UNIXTIME(start_time/1000,'%Y-%m-%d %H:%i:%s') ,end_time FROM new_notify.`crm_bubble`
SELECT FROM_UNIXTIME(substr(start_time,1,10)) FROM crm_bubble
上面兩條都可以在Mysql數據庫中將毫秒數轉化爲人類能夠看懂的日期。