2008年11月13日 星期四

mysql的unixtime時間格式,以int為型態,簡單又快速

mysql內建多種的日記格式。

比如說:
Data TypeZero” Value
DATETIME'0000-00-00 00:00:00'
DATE'0000-00-00'
TIMESTAMP'0000-00-00 00:00:00'
TIME'00:00:00'
YEAR0000

但我最愛用的還是... unixtime


unixtime是一組數字,指的是從1970-01-01 00:00:00 到指字的時間點的秒數。
那為何我說這個方便呢?
因為計算快速吧!

unixtime可以很快的算出時間差,不需要用到很多內建函數(內建函數很多,但很長,很難記,查詢效率也未必高):

  • 算出一天後的時間  time() + 86400

  • 算出這個會員一個月後到期的時間 time()+86400*30

那資料型態要怎麼設定呢?

  • 如果是記錄當下的時間(登入時間,到期日等等),就記 int unsinged

  • 如果範圍更大,低於1970,(比如說記錄歷史事件,或是800年後的事),就記medium int

但這個格式也是有缺點的,就是閱讀不容易。

但只要用函數即可轉變成可讀的格式。

例如:  select from_unixtime(1234567);