在MySQL中插入当前时间戳

3

我需要修改一个时间戳数据类型的列。问题是当记录被插入时,应该在该列中插入当前时间戳。我知道有ON UPDATE CURRENT_TIMESTAMP,但对于插入,我找不到方法。

3个回答

16
你需要的是 DEFAULT 关键词。
ALTER TABLE yourTable MODIFY COLUMN yourColumn timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

我知道可以使用ON UPDATE。但我需要的是像这样的东西,修改表TAB_NAME添加列COL_NAME时间戳默认为当前时间戳,在插入时(?????)使用当前时间戳。 - Rock 'em
2
默认情况下是插入。在插入时不指定值,该列将具有默认值。就这么简单。 - fancyPants
是的,第一次插入可以这样做。如果我稍后在该表中插入某些记录,则应将插入记录的“时间”也插入到默认列中。希望我没有让您感到困惑。 - Rock 'em
是的,你有点困惑。你的意思是同一个“时间”应该在同一张表格的另一列中吗?你从时间戳列中获取“时间”有困难吗?你知道有函数TIME(yourTimeStampColumn)和其他很多函数可以使用吗? - fancyPants
名称 时间xxxx 201-01-01 10:02:12 // 这个时间是我插入记录时的时间 yyyy // 在我插入“yyyy”时,应将时间插入到TIME列中 - Rock 'em
我真的不知道你的问题是什么。INSERT INTO yourTable (Name) VALUES ('xxxx'); 执行这个插入操作,时间列将会显示插入时的时间。我的回答中的 yourColumn 当然是指你的时间列。试一试吧... - fancyPants

1
Rock 'Em 希望被告知将 CURRENT_TIMESTAMP 用作列的默认值,而不是在更新时使用。我经常使用这个功能。这样,当记录被插入时,您就可以确切地知道发生的时间。在许多表格中,这是进行审计跟踪等操作的良好实践。

1

只需使用DEFAULT子句,忽略ON UPDATE子句,这样就可以为您工作了!

ALTER TABLE yourTable MODIFY COLUMN yourColumn timestamp DEFAULT CURRENT_TIMESTAMP

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