广告
返回顶部
首页 > 资讯 > 数据库 >MySQL中CURRENT_TIMESTAMP时间戳的使用详解
  • 497
分享到

MySQL中CURRENT_TIMESTAMP时间戳的使用详解

2024-04-02 19:04:59 497人浏览 安东尼
摘要

目录前言解决:总结前言 最近在项目中发现一个小问题,数据被更改时,插入记录和更新记录的时间会被同步更新。设置的两个时间create_time、update_time,按照预

前言

最近在项目中发现一个小问题,数据被更改时,插入记录和更新记录的时间会被同步更新。设置的两个时间create_time、update_time,按照预期来讲,应该是创建记录的时候会同步更新create_time,update_time,而在更新记录的时候,只有update_time会被同步更新。但实际情况却是update记录时,两个time都会被同步更新。

在代码中并没有对时间进行显性的设置,对时间的维护是Mysql本身进行管理的,所以就查看了一下之前同事创建表时的sql

通过SQL语句可以看出,create_time 和 update_time 设置的都是 DEFAULT CURRENT_TIMESTAMP,不管是新创建的记录,还是更新原有的记录,只要是有触发的操作,这两个时间就会被同步修改。所以要达到预期的效果,就需要修改这里了。问题根源就是SQL语句这里的设置。

解决:

把update_time的 DEFAULT CURRENT_TIMESTAMP后面再加上条件限制 ON UPDATE CURRENT_TIMESTAMP。这样在更新记录时,只有更新时间被修改,创建时间就是最初创建记录的时间。

mysql中的CURRENT_TIMESTAMP:

在创建时间字段的时候-----

① DEFAULT CURRENT_TIMESTAMP

表示当插入数据的时候,该字段默认值为当前时间

② ON UPDATE CURRENT_TIMESTAMP

表示每次更新这条数据的时候,该字段都会更新成当前时间

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

如下:

CREATE TABLE `mytest` (
    `id` bigint NOT NULL AUTO_INCREMENT,
    `comments` varchar(255) DEFAULT '' COMMENT '内容',
    `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

//如果想设置一个具体的默认时间可以这样:
CREATE TABLE `mytest2` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `comments` varchar(255) DEFAULT '' COMMENT '内容',
  `create_time` timestamp DEFAULT '2020-12-12 12:12:12' COMMENT '创建时间',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

补充:mysql自带的一些函数功能也是很强大的,这里整理了一下时间方面的

获取当前时间格式串:

#获取当前时间戳
current_timestamp() yyyy-mm-dd hh:ii:ss 
now() yyyy-mm-dd hh:ii:ss
curdate() yyyy-mm-dd
current_date()
curtime() hh:ii:ss
current_time()

提取date各个字段

#提取date各个字段
date('yyyy-mm-dd hh:ii:ss') yyyy-mm-dd
year('yyyy-mm-dd hh:ii:ss') yyyy
month('yyyy-mm-dd hh:ii:ss') mm
day('yyyy-mm-dd hh:ii:ss') dd

提取time各个字段

#提取time各个字段
time('yyyy-mm-dd hh:ii:ss') hh:ii:ss
hour('yyyy-mm-dd hh:ii:ss') hh
minute('yyyy-mm-dd hh:ii:ss') ii
second('yyyy-mm-dd hh:ii:ss') ss

获取当前或者某一时间的unix时间戳

#unix时间戳1970-01-01以来的秒数
unix_timestamp()
#同时还可以将某一时间格式串的秒数转化出来
unix_timestamp('yyyy-mm-dd hh:ii:ss')

格式化时间串和格式化时间戳

#格式化时间串 date_fORMat 与 time_format 为同一函数 输入为 
date_format(now(), '%Y-%m-%d %T');
time_format(now(), '%H:%i:%s');
#格式化时间戳 将时间戳转化为时间格式串
from_unixtime(unix_timestamp(), "%Y-%m-%d %T")

总结

到此这篇关于MySQL中CURRENT_TIMESTAMP时间戳使用的文章就介绍到这了,更多相关MySQL CURRENT_TIMESTAMP时间戳内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL中CURRENT_TIMESTAMP时间戳的使用详解

本文链接: https://www.lsjlt.com/news/144259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL中CURRENT_TIMESTAMP时间戳的使用详解
    目录前言解决:总结前言 最近在项目中发现一个小问题,数据被更改时,插入记录和更新记录的时间会被同步更新。设置的两个时间create_time、update_time,按照预...
    99+
    2022-11-13
  • mysql之TIMESTAMP(时间戳)用法详解
    TIMESTAMP是MySQL中用来存储和操作日期和时间的数据类型之一。它可以存储从1970年1月1日00:00:00到2038年1...
    99+
    2023-08-08
    mysql
  • Java时间戳类Instant的使用详解
    目录前言Instant类时间点时间表示Instant实例化Instant获取参数Instant时间点比较Instant时间点运算前言 在JAVA8之前的版本,去获取时间戳(毫秒级别)...
    99+
    2022-11-13
  • Mysql的timestamp时间戳详解及2038问题
    目录时间戳数据存取时间戳字段定义时间戳类型引发的异常时间戳类型和时间类型选择时间戳类型使用建议Timestamp和datetime的异同设置timestamp和date的自动更新时间2038问题解决方案时间戳是指格林威治...
    99+
    2023-04-27
    Mysql timestamp时间戳 MySQL 时间戳2038
  • MySQL 中时间戳及时间戳的格式转换
    MySQL 中时间戳及时间戳的格式转换 一、什么是时间戳二、时间戳转换时间三、时间转换为时间戳 一、什么是时间戳 时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。通俗的讲,时间戳...
    99+
    2023-08-16
    mysql 数据库 sql
  • C#时间戳基本使用方法详解
    目录时间戳转换:一、计算机时间为什么都从1970年1月1日为起始二、本地时间和UTC时间相互转化三、javascript和unix时间戳的使用和转化1. 什么是时间戳2. JavaS...
    99+
    2022-11-13
    C#时间戳 C#时间戳转换 C#时间戳Sql
  • MySql中时间戳的转换
    时间戳转日期时间字符串 from_unixtime(timestamp ,date_format) 参数说明: timestamp :时间戳,可为数字,也可为表中的字段,单位是秒 date_format:日期时间格式,不填默认为...
    99+
    2023-09-26
    mysql 数据库 Powered by 金山文档
  • MySQL数据库中时间戳及时间戳的格式转换
    一、什么是时间戳 时间戳是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数。通俗的讲,时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 常见有10位(单位:秒)和13位(单位:毫秒)...
    99+
    2023-09-20
    mysql 数据库 时间戳 时间戳格式转换
  • Java中时间戳的使用
    原文链接 当前时间 import java.sql.Timestamp; //导包Timestamp nowTime = new Timestamp(System.currentTimeMillis());System.out.printl...
    99+
    2023-08-30
    java 开发语言
  • 使用php 获取时间今天、明天、昨天时间戳的详解
    使用php获取时间今、明天、昨天时间戳 本函数预期接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数),其值相对于 now  参数给出的时间,如果没...
    99+
    2023-09-11
    php android 开发语言
  • 如何在mysql中使用时间戳精度
    如何在mysql中使用时间戳精度?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。前段时间,将负责的应用的mysql-connector-ja...
    99+
    2022-10-18
  • 详解php中时间戳和时间字符串的相互转换
    PHP是一种脚本语言,常用于网站开发和服务器端编程。在PHP中,时间戳常常被用来表示时间。时间戳是指自1970年01月01日(格林威治时间00:00:00)以来的秒数。虽然时间戳方便了我们在程序中对时间进行计算,但对于普通用户来说,看到一串...
    99+
    2023-05-14
    php 时间戳 php日期时间
  • MySQL中CURRENT_TIMESTAMP的使用方式
    目录CURRENT_TIMESTAMP的使用timestamp使用CURRENT_TIMESTAMP报错CURRENT_TIMESTAMP的使用 众所周知,MySQL的日期类型可以使...
    99+
    2022-11-12
  • mysql时间戳的用法有哪些
    MySQL中时间戳的用法有以下几种:1. 存储当前时间戳:使用`CURRENT_TIMESTAMP`或者`NOW()`函数,将当前时...
    99+
    2023-08-09
    mysql
  • 详解PHP中怎么进行时间戳转换
    随着互联网的发展,各种编程语言已经逐渐成为了人们日常生活和工作中不可或缺的一部分。其中,PHP作为一种广泛使用的编程语言,具有很高的可读性和灵活性。在PHP开发中,时间戳转换是必须掌握的基础技能之一,因为时间戳的转换可以让我们更加方便地管理...
    99+
    2023-05-14
    php php时间戳
  • php中时间戳怎么使用
    本篇内容介绍了“php中时间戳怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是时间戳时间戳是一个表示时间的数字,它通常表示从19...
    99+
    2023-07-05
  • javascript获取时间戳的5种方法详解
    js/javascript获取时间戳的5种方法 1.获取时间戳精确到秒,13位 const timestamp = Date.parse(new Date()); console.l...
    99+
    2023-03-19
    js获取时间戳 js时间戳
  • UTC时间、GMT时间、本地时间、Unix时间戳的具体使用
    目录1.UTC时间 与 GMT时间2.UTC时间 与 本地时3.UTC 与 Unix时间戳1.UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT=UTC),...
    99+
    2022-11-12
  • jmeter的时间戳函数使用
    在使用jmeter做接口测试的时候,经常会要用到日期这种函数,让系统自动生成一些格式化的数据,方便接口测试,jmeter自身就带有时间戳的函数 1、__time:获取时间戳、格式化时...
    99+
    2022-11-12
  • Golang时间及时间戳的获取转换超全面详细讲解
    目录获取时间获取之前/之后的时间获时间戳获取当前时间戳时间转时间戳时间戳转时间获取时间 获取当前时间 package main import ( "fmt" ...
    99+
    2022-12-16
    Golang时间戳 Golang时间转时间戳 GoLang时间戳转时间
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作