【发布时间】:2011-08-25 22:55:03
【问题描述】:
我的数据库中有一个时间戳类型的变量。它的默认值为“CURRENT_TIMESTAMP”,这是一个很棒的功能。
但是,当我在模板中输出变量时,它被格式化为实际日期。 php 是在这里做一些花哨的事情还是数据库中的日期仍然存储为时间戳?我需要对系统中某些功能的日期进行一些计算。
【问题讨论】:
-
current_timestamp 存储实际的日期和时间。
我的数据库中有一个时间戳类型的变量。它的默认值为“CURRENT_TIMESTAMP”,这是一个很棒的功能。
但是,当我在模板中输出变量时,它被格式化为实际日期。 php 是在这里做一些花哨的事情还是数据库中的日期仍然存储为时间戳?我需要对系统中某些功能的日期进行一些计算。
【问题讨论】:
您将 MySQL TIMESTAMP (YYYY-MM-DD HH:MM:SS) 与 Unix TIMESTAMP(自纪元以来的秒数)混淆了。
SELECT UNIX_TIMESTAMP(timestamp_column_name) FROM ...应该给你你想要的
【讨论】:
当您第一次插入值时,CURRENT_TIMESTAMP 会被解释并替换为此刻函数 NOW() 的值。对于时间戳,mysql 存储一个 4 字节整数,它表示自当前时区中的 unix 纪元以来的秒数。您仍然可以使用日期和时间函数在 mysql 中进行计算(例如,返回其他格式等)。如果您有兴趣,您也可以在 PHP 中使用此值进行计算。
http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html#id624727
http://en.wikipedia.org/wiki/Unix_time
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html
【讨论】: