MYSQL:将时间戳转换为时间

4

I have this MYSQL Table:

[ID] [TIMESTAMP] [TIME]
[1] [2010-05-29 01:17:35] []
[1] [2010-05-29 01:23:42] []

现在我需要将TIMESTAMP的值复制到TIME行中。使用PHP命令time()创建新的TIME行。

问题:我不知道该如何实现。也许是通过MySQL命令,也许是通过PHP?请帮帮我!

我的表:

CREATE TABLE `comments` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `ip` int(10) unsigned NOT NULL,
  `name` varchar(40) NOT NULL,
  `comment` text NOT NULL,
  `timestamp` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `email` varchar(30) NOT NULL,
  `time` int(100) NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `news_id` (`m0arid`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=17198 ;

目标:我想删除时间戳,因为我认为时间更好。
附注:如果您对查看此表格有一般提示,请告诉我。

1
我会保留时间戳。 - Lightness Races in Orbit
你的时间列为什么是int(100)类型?你想使用什么格式? - krtek
@Krtek Unix时间戳。@Tomalak Geret'kal 很遗憾我不能 :/。 - user606346
int(100) - 括号中的 (100) 仅是一个显示提示 - “显示100位数字”。它对数字的存储方式没有影响。在内部,int 就是 int,并占用4个字节的存储空间,无论您想要1位还是100位。 - Marc B
就像我在回答中所说的那样,MySQL时间戳实际上是Unix时间戳,你想要进行的转换是没有意义的。内部上它们将会是完全相同的,但是没有了MySQL可以使用时间戳类型进行的类型检查。 - krtek
4个回答

2
你可以使用以下函数在日期和Unix时间戳之间进行切换(不要与MySQL的TIMESTAMP列类型混淆): 至于你的表,我认为将日期存储为整数没有太大用处。您无法进行任何日期计算(甚至无法显示为日期)而不进行先前的转换。此外,在PHP中,Unix时间戳并不是非常可移植的:一些平台甚至不允许存储1970年以前的日期...

MySQL的TIMESTAMP类型实际上是内部使用Unix时间戳,就像我在回答中所解释的那样,这一点是毫无疑问的;但是我同意保留时间戳列。 - krtek

2
如果你计划按照类型建议的方式(int(100))存储日期的Unix时间戳,则这根本没有任何意义。
在MySQL中,时间戳列使用Unix时间戳进行存储。以下引用(来自http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_unix-timestamp):
“当在时间戳列上使用UNIX_TIMESTAMP()时,该函数直接返回内部时间戳值,没有隐式的“字符串到Unix时间戳”的转换。”
证明了我的观点。
当你执行查询时看到的结果只是MySQL尝试漂亮地打印信息。
我建议保留时间戳列,并在需要将值作为时间戳时在查询中使用UNIX_TIMESTAMP(timestamp)

哎呀,它都被改变了。我很抱歉。 - Your Common Sense

2
我建议使用PHP date() 函数而不是time()。将MySQL数据库中的“time”属性更改为datetime数据类型。在您需要记录时间的php代码中,使用以下代码:
date("Y-m-d H:i:s");

这将生成一个完全符合MySQL日期时间数据类型格式的字符串。(例如:"2011-03-02 08:04:32")。

0

1
这种转换完全没有意义,MySQL在内部将时间戳类型存储为Unix时间戳。如果您的时间列将用于存储Unix时间戳,则可以坚持使用时间戳,它完全相同。文档中的以下引用“当UNIX_TIMESTAMP()用于TIMESTAMP列时,该函数直接返回内部时间戳值,没有隐式的“字符串到Unix时间戳”的转换。”支持我的说法;) - krtek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接