MySQL自动添加系统时间

2023-07-2712:42:54数据库教程Comments917 views字数 1216阅读模式

MySQL时间类型有以下几种:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

  • DATE类型:存储年月日
  • TIME类型:存储时分秒
  • DATETIME类型:存储YYYY-MM-DD HH:MM:SS
  • TIMESTAMP类型:存储YYYYMMDDHHMMSS

在使用mysql数据库时,常用的类型就是date和datetime文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

datetime和timestamp有什么区别?文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

  • 都可以用来存储:年月日时分秒,两者都可以精确到毫秒,比如:datetime(3)、timestamp(3),就是精确到三位毫秒值
  • timestamp更适合跨时区的业务,mysql5.6.4之后的版本,可以精确到毫秒,并且可以指定

mysql的时间类型有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

1、CURRENT_TIMESTAMP:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

当要向数据库执行insert操作时,如果有个timestamp字段属性设为CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

2、ON UPDATE CURRENT_TIMESTAMP文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

当执行update操作时,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,他的值也会跟着更新为当前UPDATE操作时的时间文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

例如:创建表名时指定创建时间和修改时间字段:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

CREATE TABLE `example` (`id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID信息',`name` varchar(100) NOT NULL DEFAULT "" COMMENT '姓名',`age`  int  NOT NULL COMMENT '年龄',`created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`modified` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

查看表结构,desc example,如图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

MySQL自动添加系统时间文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

执行命令插入数据,观察创建和修改时间,都为当前操作时间,如图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

MySQL自动添加系统时间文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

执行更新命令后,再次查看修改时间,如图:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

MySQL自动添加系统时间文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

总结:字段的默认值设置CURRENT_TIMESTAMP的时候,添加新内容的时候,对应的时间会填充为当前时间,但是修改的时候时间保持不变,如果默认值设置为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,添加新内容的时候,对应的时间会填充为当前时间,修改的时候,时间也会刷新为当前修改的时间文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

注意:上述创建表的字段类型从timestamp改为datetime也是可以的,COMMENT表示注释,可以知道此字段作用文章源自菜鸟学院-https://www.cainiaoxueyuan.com/sjk/51982.html

  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/sjk/51982.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定