MySQL自动添加系统时间

2023年 7月 28日 41.5k 0

MySQL时间类型有以下几种:

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

在使用mysql数据库时,常用的类型就是date和datetime

datetime和timestamp有什么区别?

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

mysql的时间类型有两个属性,分别是CURRENT_TIMESTAMP 和ON UPDATE CURRENT_TIMESTAMP两种,使用情况分别如下:

1、CURRENT_TIMESTAMP:

当要向数据库执行insert操作时,如果有个timestamp字段属性设为CURRENT_TIMESTAMP,则无论这个字段有没有set值都插入当前系统时间

2、ON UPDATE CURRENT_TIMESTAMP

当执行update操作时,并且字段有ON UPDATE CURRENT_TIMESTAMP属性。则字段无论值有没有变化,他的值也会跟着更新为当前UPDATE操作时的时间

例如:创建表名时指定创建时间和修改时间字段:

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,如图:

MySQL自动添加系统时间

执行命令插入数据,观察创建和修改时间,都为当前操作时间,如图:

MySQL自动添加系统时间

执行更新命令后,再次查看修改时间,如图:

MySQL自动添加系统时间

总结:字段的默认值设置CURRENT_TIMESTAMP的时候,添加新内容的时候,对应的时间会填充为当前时间,但是修改的时候时间保持不变,如果默认值设置为CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,添加新内容的时候,对应的时间会填充为当前时间,修改的时候,时间也会刷新为当前修改的时间

注意:上述创建表的字段类型从timestamp改为datetime也是可以的,COMMENT表示注释,可以知道此字段作用

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论