问题来源

在业务系统中,有时候想要知道用户最后一次活动距离现在的时间。记得mysql是有这样的字段的,可以直接在一条记录更新时,自动更新时间。上网查了查,找到了,是timestamp类型。

用法

在表中定义一个timestamp类型的字段,如下所示:

create table test(

id integer primary key auto_increment,

name varchar(256) not null,

createdAt timestamp default current_timestamp on update current_timestamp

);

createdAt字段被定义为timestamp类型,而且默认值是当前时间戳,当记录发生更新时,该字段同时会更新为当前时间戳。timestamp等于是提供了对一条对数据自身修改时间的记录。

依据不同的场景,一般timestamp会有几类用法:

在记录创建和修改时都刷新

参见上面的例子,在sql语句上,要同时注明default字段和on update字段。

createdAt timestamp default current_timestamp on update current_timestamp

只在记录创建时刷新时间,以后修改时不再刷新

如下所示,在定义字段时删去on update语句。

createdAt timestamp default current_timestamp

在创建时将字段设置为0,以后修改时刷新

只有on update语句。

createdAt timestamp on update current_timestamp

在创建时给一个定值,修改时刷新

只有on update语句。

createdAt timestamp DEFAULT ‘yyyy-mm-dd hh:mm:ss' on update current_timestamp

这样,在记录发生变化时,可以根据需要记录时间戳。

字段更新值和原值一样的情况

假定我们更新了表的某个字段,例如name属性,createdAt也可以相应刷新。但是有一种情况例外,就是如果更新值和原值一样,mysql出于优化考虑,并不会执行任何操作。此时,为了记录时间,可以强制刷新时间戳。

update table test set name = '', createdAt = current_timestamp where id = 1;

读取时间戳

如果要读出时间戳,又该怎么使用呢?

select unix_timestamp(createdAt) as tt from test

如上所示,该语句可以读出来以秒为单位的时间戳,然后就可以进行各种比较和运算了

mysql timestamp 用法_MYSQL timestamp用法相关推荐

  1. mysql timestamp格式化_mysql TIMESTAMP(时间戳)详解

    TIMESTAMP的变体 1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创建新记录和修改现有记录的时候都对这个数 ...

  2. mysql sysdate调用_MySQL SYSDATE()用法及代码示例

    MySQL中的SYSDATE()函数用于根据函数的上下文以YYYY-MM-DD HH:MM:SS或YYYYMMDDHHMMSS.uuuuuu格式返回当前日期和时间. 用法: SYSDATE() 参数: ...

  3. mysql $的用法_MYSQL limit用法

    1.Mysql的limit用法 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. Sql代码   SELECT * F ...

  4. decode的mysql用法_MySQL DECODE( )用法及代码示例

    MySQL DECODE()函数用于解码编码的字符串并返回原始字符串.如果编码的字符串为空字符串,则MySQL DECODE()函数将返回空字符串. DECODE()函数接受两个参数,分别是要解码的编 ...

  5. mysql中field的用法_MySQL FIELD()用法及代碼示例

    FIELD(): 此函數有助於返回值在給定值列表中的位置.如果用戶將字符串值作為FIELD()函數的參數傳遞,則搜索將作為字符串值執行.並且,如果用戶將數字值作為FIELD()函數的參數傳遞,則搜索將 ...

  6. mysql timestamp 类型_MySQL timestamp类型

    在本教程中,您将了解MySQL TIMESTAMP和TIMESTAMP列的功能,如使用时间戳自动初始化和更新. MySQL TIMESTAMP简介 MySQL TIMESTAMP是一种保存日期和时间组 ...

  7. mysql更新时间戳_MySQL timestamp自动更新时间分享

    通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项.MySQL也有默认值timestamp,但在MySQL中,不仅是插入就算是修改也会更新timestamp的值! 这样 ...

  8. mysql year使用_MySQL YEAR()用法及代码示例

    MySQL中的YEAR()函数用于查找给定日期的年份.如果日期为NULL,则YEAR()函数将返回NULL.否则,它将返回从1000到9999的值范围. 用法: YEAR(date) 参数:此方法接受 ...

  9. mysql锿法_MySQL基本用法

    常用sql语句 查看数据库: show databases; 创建一个HA的数据库: create database HA; 查看自己所处的位置: select database(); 删除数据库: ...

最新文章

  1. 想法1 : 突然萌发的 “天时地利人和”-----优化
  2. elk7.2+filebeat
  3. H5案例分享:移动端滑屏 touch事件
  4. GPU 与CPU的作用协调,工作流程、GPU整合到CPU得好处
  5. 在python3中如何加载静态文件详版步骤
  6. c# mysql 中文,c#操作mysql中文乱码的解决方案_c#应用
  7. php 批量删除挂马文件夹,PHP批量挂马脚本
  8. Spring Boot和Dubbo整合
  9. iapp退出软件按钮代码_还在为金蝶财务软件发愁吗?超详细!金蝶财务软件实操流程,速收...
  10. 上传附件点击事件_支持高拍仪扫描凭证附件的出纳记账软件
  11. 大学生简单静态HTML网页模板源码——家乡介绍美丽乡村11页
  12. qq互联android sdk,qq互联.Android_SDK_V2.0使用说明.doc
  13. 成都链安科技CEO 创始人杨霞:解决智能合约的安全问题,形式化验证是个“利器”!
  14. android常用地图坐标转换
  15. xman_2019_format
  16. linux 脚本里切换用户密码,shell,切换用户,执行指定,脚本
  17. 调用win api将指定名称的打印机设置为默认打印机
  18. 他如何从一位专车司机成功变身CEO?
  19. 关于matlab好文推荐
  20. 1064 朋友数 (C++)

热门文章

  1. C语言getenv()函数的用法?(获取系统某个环境变量字符串名的值)(windows VS上用_dupenv_s()函数)
  2. C/C++ 如何快速解构一个系统的源码(如何看懂大型工程项目的源码)
  3. python如何判断一段代码运行是否超出一定时间,如果超出则抛出异常?(检测函数运行是否超时,规定时间内执行,限制时间)eventlet模块 (eventlet.timeout.Timeout)
  4. 将yolo标注转换为tensorflow_yolov3标注生成train.txt和test.txt同时做数据清洗
  5. Python 计算机视觉(七)—— OpevCV进行直方图统计
  6. linux——管理系统设备之LVM的管理
  7. thymeleaf基本语法
  8. android 4.0.3固件,Vi30豪华版_Android4.0.3-1.0测试版固件刷机教程【MM刷机】
  9. matlab 格式化文件,格式化matlab文件01_新建普通文件
  10. java 表单请求_java模拟表单请求