博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql之TIMESTAMP(时间戳)用法详解
阅读量:6487 次
发布时间:2019-06-23

本文共 1705 字,大约阅读时间需要 5 分钟。

hot3.png

大部分内容来自 : 

一、TIMESTAMP的变体

TIMESTAMP时间戳在创建的时候可以有多重不同的特性,如:

1.在创建新记录和修改现有记录的时候都对这个数据列刷新:

TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

2.在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它:

TIMESTAMP DEFAULT CURRENT_TIMESTAMP

3.在创建新记录的时候把这个字段设置为0,以后修改时刷新它:

TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

4.在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它:

TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss' ON UPDATE CURRENT_TIMESTAMP

MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型,下面就详细说明TIMESTAMP列类型(我这是转载的这个原博客写于2014)

那是以前,现在可以了! (我用的mysql 5.7)

105445_BKcN_2885163.png

105509_nAR2_2885163.png

CURRENT_TIMESTAMP 写成函数形式也行

103059_meUb_2885163.png

 

二、TIMESTAMP列类型

TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。

TIMESTAMP值显示尺寸的格式如下表所示:

110028_8Sbb_2885163.png

“完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸,创造最常见的显示尺寸是6、8、12、和14。

你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。
列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。
110100_nxhw_2885163.png

所有的TIMESTAMP列都有同样的存储大小,使用被指定的时期时间值的完整精度(14位)存储合法的值不考虑显示尺寸。不合法的日期,将会被强制为0存储

这有几个含意:

1.虽然你建表时定义了列TIMESTAMP(8),但在你进行数据插入与更新时TIMESTAMP列实际上保存了14位的数据(包括年月日时分秒),只不过在你进行查询时MySQL返回给你的是8位的年月日数据。如果你使用ALTER TABLE拓宽一个狭窄的TIMESTAMP列,以前被“隐蔽”的信息将被显示。

2.同样,缩小一个TIMESTAMP列不会导致信息失去,除了感觉上值在显示时,较少的信息被显示出。

3.尽管TIMESTAMP值被存储为完整精度,直接操作存储值的唯一函数是UNIX_TIMESTAMP();由于MySQL返回TIMESTAMP列的列值是进过格式化后的检索的值,这意味着你可能不能使用某些函数来操作TIMESTAMP列(例如HOUR()或SECOND()),除非TIMESTAMP值的相关部分被包含在格式化的值中。

例如,一个TIMESTAMP列只有被定义为TIMESTAMP(10)以上时,TIMESTAMP列的HH部分才会被显示,因此在更短的TIMESTAMP值上使用HOUR()会产生一个不可预知的结果。

4.不合法TIMESTAMP值被变换到适当类型的“零”值(00000000000000)。(DATETIME,DATE亦然)

三、当指定日期值时,当心某些缺陷:

1.允许作为字符串指定值的宽松格式能被欺骗。例如,因为“:”分隔符的使用,值'10:11:12'可能看起来像时间值,但是如果在一个日期中使用,上下文将作为年份被解释成'2010-11-12'。值'10:45:15'将被变换到'0000-00-00',因为'45'不是一个合法的月份。

 
2.以2位数字指定的年值是模糊的,因为世纪是未知的。MySQL使用下列规则解释2位年值:
在00-69范围的年值被变换到2000-2069。 在范围70-99的年值被变换到1970-1999。

 

转载于:https://my.oschina.net/zjllovecode/blog/1784900

你可能感兴趣的文章
吴恩达机器学习 Coursera 笔记(三) - 线性回归回顾
查看>>
新鲜出炉的电信诈骗经历
查看>>
SpringCloud源码:Ribbon负载均衡分析
查看>>
vue中axios请求的封装
查看>>
深入Java -JVM 垃圾回收
查看>>
工作多年的.NET程序员,是否建立了自己的开发知识库?分享制作电子书的经验...
查看>>
网络端口号大全
查看>>
非常不错的sharepoint webpart工具集
查看>>
腾讯微博Android客户端开发——OAuth认证介绍
查看>>
selinux 设置关键命令行
查看>>
TPFanControl v0.62 + 汉化补丁
查看>>
手机隐藏ip地址的方法简单设置
查看>>
ubuntu 安装星际译王词典
查看>>
从 Spring Cloud 看一个微服务框架的「五脏六腑」
查看>>
mac上qlv格式转mp4方法
查看>>
Source file
查看>>
网页延迟分析
查看>>
#pragma分析
查看>>
排除瓶颈和加速django项目
查看>>
一次SYN***之战之Linux如何防SYN***
查看>>