2011-08-25 101 views
0

我的数据库中有一个类型为timestamp的变量。它的默认值是“CURRENT_TIMESTAMP”,这是一个很棒的功能。MySQL数据库+时间戳/ PHP

但是,当我在模板中输出变量时,它将被格式化为实际日期。是PHP在这里做一些奇特的事情还是数据库中的日期仍然存储为时间戳?我需要对系统中某些功能的日期进行一些计算。

+0

CURRENT_TIMESTAMP店的实际日期和时间。 –

回答

3

您正在混淆MySQL TIMESTAMPs(YYYY-MM-DD HH:MM:SS)和Unix TIMESTAMPS(自纪元以来的秒数)。

SELECT UNIX_TIMESTAMP(timestamp_column_name) FROM ...应该给你想要的

MySQL Manual (UNIX_TIMESTAMP)

+0

是的,它做到了!这为我节省了很多时间和麻烦。 –

1

当你第一次插入值,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

http://us.php.net/manual/es/ref.datetime.php