mysql时间自动填充_关于phpmyadmin:MySQL日期栏自动填充当前日期

当在MySQL中插入新记录时,可以设置DATE或TIMESTAMP字段默认值为NOW(),以自动填充当前日期和时间。在PHPMyAdmin中,可以通过修改表结构来实现这一功能。在创建或更新表时,使用`DEFAULT now()`或`ON UPDATE CURRENT_TIMESTAMP`可以确保每次插入或更新时日期自动更新。注意,TIMESTAMP和DATETIME类型有不同的日期范围和行为,根据需求选择合适的数据类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我有一个表,其中有一个date列。 每当我插入具有当前日期的新注册表时,MySQL是否可以自动填充此字段? 还是默认情况下自动进行?

附言:我正在使用PHPMyAdmin

这应该是您要寻找的东西... stackoverflow.com/questions/168736/

可能的重复项:stackoverflow.com/questions/3696778/,stackoverflow.com/questions/168736/,stackoverflow.com/questions/5818423/

尽管这是一个过时的帖子,但由于它更明确,因此可能会有所帮助:

(对于phpMyAdmin用户)

2dcd6755550bba177144b138bf469a94.png

此配置使用以下值设置该字段:

2015-12-11 07:50:47

PS:请注意,时间戳将设置服务器的时间!! (即上面的示例是从太平洋时间(07:50:47)开始的时间,但可能是来自西班牙用户当地时间16:50:47的时间)。请记住这一点。

另外,如果您已经拥有"创建日期",则可能需要另外一列,以便在有更新时更新修改日期:

您只需要在"属性"字段中设置更新当前时间标记。

准备摇滚!

3ea57f3a3dfe4ec79de29aef7b9eb3e7.png

在您的mySql查询中将Default设置为

你是英雄先生!

你必须使用

现在()

您想填写当前时间的功能。

即:

INSERT INTO  user_rights (`user_id`,`right`,`group_id`,`created_date`) VALUES ( '42',  '160',  '1',  now());

我意识到这可能不是问题的直接答案,但我确实相信这是最有用的解决方案。

我强烈建议对所涉及的列使用DATETIME或TIMESTAMP数据类型。如果您使用的是最新版本的MySQL,MySQL将为您完成工作。

细节:

很清楚,从5.6.5版本开始,对于TIMESTAMP和DATETIME数据类型,都可以执行以下操作:

设置当前日期和时间的默认值(使用NOW()或其别名之一,例如CURRENT_TIMESTAMP),这意味着每次您向该表中插入新行时,具有默认值的TIMESTAMP或DATETIME列都会获取当前日期和时间。时间

设置一个ON UPDATE约束,该约束将在(您猜到)行更新时将列更新为当前日期和时间

这是如何做:

CREATE TABLE语句中的一个示例:

请注意,DATETIME可以用TIMESTAMP代替,以有效地实现相同的功能。

另外,我建议在TIMESTAMP上使用DATETIME数据类型,因为DATETIME可以支持的日期范围更大。值得一提的是,在少数情况下,TIMESTAMP较小。有关更多详细信息,请在此处阅读我的答案:https://stackoverflow.com/a/26117532/1748266

我已经将此添加到我的表中并且可以正常工作

当您将数据插入记录时,它会自动更新med_created

您可以在SQL屏幕上执行类似的操作

ALTER TABLE `table_name` CHANGE `created_at` `created_at` TIMESTAMP NOT NULL

不幸的是,MySQL不允许将常量以外的值指定为TIMESTAMP以外的列的默认值。

这是MySQL 8.0+版本中可用的功能,但是对于较旧的版本,数据库定义的默认值的唯一解决方案是使用触发器。

是的,但是我需要每天更改此默认值吗? 我只希望它为我自动填写当前日期。

似乎只有使用timestamp数据类型才能实现该功能:stackoverflow.com/questions/5818423/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值