XuLaLa.Tech

首页客户端下载Windows 使用V2Ray 教程SSR 教程Clash 教程

巧用 MySql的CURRENT_TIMESTAMP

2025.04.09

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

文章目录

  • 1 基本用法
  • 2 使用
  • 3 时间精确到秒
  • 4 时间精确到毫秒
  • 5 获取时间戳

基本用法

字段创建时指定默认值

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是小数秒精度。

© 2010-2022 XuLaLa 保留所有权利 本站由 WordPress 强力驱动
请求次数:69 次,加载用时:0.665 秒,内存占用:32.19 MB