Categories: Mysql业界数据库

巧用 MySql的CURRENT_TIMESTAMP

在使用mysql进行业务开发的过程中,设计数据库表结构时通常会有两个字段create_time和update_time,这两个分别代表者记录的创建时间和更新时间,用于业务的分析和查询。那除了每次业务记录有变更时主动去更新这个两个字段还有没有更优雅的更新方式呢?有,使用mysql的CURRENT_TIMESTAMP。

基本用法

字段创建时指定默认值

DEFAULT CURRENT_TIMESTAMP

记录更新时自动更新这个字段( 表示每次更新这条数据的时候,该字段都会更新成当前时间)

ON UPDATE CURRENT_TIMESTAMP

这两个操作是mysql数据库本身在维护,所以可以根据这个特性来生成【创建时间】和【更新时间】两个字段,且不需要代码来维护

使用

时间精确到秒

CREATE TABLE myTable 
(
 id INT,
 date_registered TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', 
 date_validated TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

时间精确到毫秒

CREATE TABLE myTable 
(
 id INT,
 date_registered TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) COMMENT '创建时间', 
 date_validated TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间'
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

获取时间戳

### 秒
select UNIX_TIMESTAMP()

### 毫秒
select current_timestamp(6)

MySQL支持时间、日期时间和时间戳值的小数秒,精度高达微秒(6位):要定义包含小数秒部分的列,请使用语法类型_name(fsp),其中类型_name是时间、日期时间或时间戳,而fsp是小数秒精度。

5.0
02
好用的15个history命令例子
Linux uptime - 您的系统运行了多长时间
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

Autojump一个linux目录快速跳转的命令工具

Linux命令行实用程序有一个…

2天 ago

Groq一款语言处理的超快AI解决方案

Groq正在AI创新的最前沿,…

2天 ago

WordUp是一个AI词汇增强应用

WordUp是一个AI驱动的词…

2天 ago

Sia一款AI学习引擎

Sia作为全球首款统一人工智能…

2天 ago

Exscientia一款药物发现AI工具

Exscientia,一家杰出…

3天 ago