MySQL中存儲的時間數(shù)據(jù)類型包括DATE、TIME、DATETIME、TIMESTAMP等,其中TIMESTAMP類型存儲的是從1970年1月1日00:00:00到當(dāng)前時間的秒數(shù),稱為UNIX時間戳。
UNIX時間戳 ->年月日 FROM_UNIXTIME(unix_timestamp, format) UNIX時間戳 ->年月日 時分秒 FROM_UNIXTIME(unix_timestamp) 年月日 ->UNIX時間戳 UNIX_TIMESTAMP(date) 年月日 時分秒 ->UNIX時間戳 UNIX_TIMESTAMP(datetime)
以上是一些常用的UNIX時間戳與時間格式之間的轉(zhuǎn)換方法,在進行時間轉(zhuǎn)換的時候需要注意format參數(shù)的格式,如"%Y-%m-%d %H:%i:%s"表示年-月-日 時:分:秒。
此外,當(dāng)使用UNIX時間戳存儲時間數(shù)據(jù)時,需要考慮時區(qū)的問題,可以使用CONVERT_TZ()函數(shù)進行時區(qū)轉(zhuǎn)換。
UNIX時間戳 ->時區(qū)轉(zhuǎn)換后的UNIX時間戳 CONVERT_TZ(FROM_UNIXTIME(unix_timestamp), old_time_zone, new_time_zone) 年月日 時分秒 ->時區(qū)轉(zhuǎn)換后的UNIX時間戳 UNIX_TIMESTAMP(CONVERT_TZ(datetime, old_time_zone, new_time_zone)) 時區(qū)轉(zhuǎn)換后的UNIX時間戳 ->年月日 時分秒 FROM_UNIXTIME(UNIX_TIMESTAMP(CONVERT_TZ(FROM_UNIXTIME(unix_timestamp), old_time_zone, new_time_zone)), format)
在進行時間轉(zhuǎn)換時,除了使用MySQL內(nèi)置函數(shù)外,也可以使用編程語言對UNIX時間戳進行操作,如在PHP中,可以使用date()和strtotime()函數(shù)進行轉(zhuǎn)換。
UNIX時間戳 ->年月日 時分秒 date("Y-m-d H:i:s", unix_timestamp) 年月日 時分秒 ->UNIX時間戳 strtotime(datetime)