MySQL中存储的时间数据类型包括DATE、TIME、DATETIME、TIMESTAMP等,其中TIMESTAMP类型存储的是从1970年1月1日00:00:00到当前时间的秒数,称为UNIX时间戳。
UNIX时间戳 ->年月日 FROM_UNIXTIME(unix_timestamp, format) UNIX时间戳 ->年月日 时分秒 FROM_UNIXTIME(unix_timestamp) 年月日 ->UNIX时间戳 UNIX_TIMESTAMP(date) 年月日 时分秒 ->UNIX时间戳 UNIX_TIMESTAMP(datetime)
以上是一些常用的UNIX时间戳与时间格式之间的转换方法,在进行时间转换的时候需要注意format参数的格式,如"%Y-%m-%d %H:%i:%s"表示年-月-日 时:分:秒。
此外,当使用UNIX时间戳存储时间数据时,需要考虑时区的问题,可以使用CONVERT_TZ()函数进行时区转换。
UNIX时间戳 ->时区转换后的UNIX时间戳 CONVERT_TZ(FROM_UNIXTIME(unix_timestamp), old_time_zone, new_time_zone) 年月日 时分秒 ->时区转换后的UNIX时间戳 UNIX_TIMESTAMP(CONVERT_TZ(datetime, old_time_zone, new_time_zone)) 时区转换后的UNIX时间戳 ->年月日 时分秒 FROM_UNIXTIME(UNIX_TIMESTAMP(CONVERT_TZ(FROM_UNIXTIME(unix_timestamp), old_time_zone, new_time_zone)), format)
在进行时间转换时,除了使用MySQL内置函数外,也可以使用编程语言对UNIX时间戳进行操作,如在PHP中,可以使用date()和strtotime()函数进行转换。
UNIX时间戳 ->年月日 时分秒 date("Y-m-d H:i:s", unix_timestamp) 年月日 时分秒 ->UNIX时间戳 strtotime(datetime)