首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在mySQL中存储时间戳

问在mySQL中存储时间戳
EN

Stack Overflow用户
提问于 2011-06-29 19:34:12
回答 6查看 24.1K关注 0票数 13

我记得我在某处读到过,mySQL timestamp数据类型用于在行更新时自动更新,这是真的吗?

例如,我是否必须使用timestamp数据类型或bigint来存储时间戳?

注意:必须存储的时间戳不是由mySQL生成的,它是一个预定义的值,将由PHP生成。

谢谢。

EN

回答 6

Stack Overflow用户

发布于 2011-06-29 19:40:57

可以使用列定义中的ON UPDATE CURRENT_TIMESTAMP将TIMESTAMP类型的列设置为自动更新。

但是,这不会在插入记录时填充。如前所述,您可以在PHP中构建时间戳(格式:YYYY-MM-DD HH:MM:SS)并插入它,也可以在列定义中设置DEFAULT CURRENT_TIMESTAMP的另一个列属性。

欲了解更多信息,请访问:MySQL: TIMESTAMP Properties

更新:如果unix时间戳值是必需的输出,请使用TIMESTAMP存储该值,然后使用以下命令获取unix值:

代码语言:javascript
复制
SELECT UNIX_TIMESTAMP(your_column_name) FROM your_table_name

要使用unix时间戳插入,可以使用FROM_UNIXTIME()

代码语言:javascript
复制
INSERT INTO (your_table_name) (your_column_name) VALUES (FROM_UNIXTIME(your_bigint_value));
票数 19
EN

Stack Overflow用户

发布于 2011-06-29 19:41:27

好了,我想这个问题已经解决了。

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html

零值时间戳看起来像这样‘1309347278 -00-00 00:00:00',所以它不能用来存储像这样的unix时间戳:0000,所以它必须是BIGINT。

谢谢。

票数 7
EN

Stack Overflow用户

发布于 2017-09-22 06:49:20

正确的答案是int(11),因为时间戳是一个大/大整数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6519968

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档