我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql 中TIMESTAMP的作用是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql 中TIMESTAMP的作用是什么

本篇文章为大家展示了mysql 中TIMESTAMP的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。


TIMESTAMP的变体
1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  
在创建新记录和修改现有记录的时候都对这个数据列刷新
 
2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP  在创建新记录的时候把这个
字段设置为当前时间,但以后修改时,不再刷新它
 
3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  在创建新记录的时候把这个字段设置为0,
以后修改时刷新它  www.2cto.com  
 
4,TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP  
在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它
MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期
与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型
 
*TIMESTAMP列类型*
TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。
TIMESTAMP值显示尺寸的格式如下表所示:

+---------------+----------------+
| 列类型    | 显示格式    |
| TIMESTAMP(14) | YYYYMMDDHHMMSS | 
| TIMESTAMP(12) | YYMMDDHHMMSS  |
| TIMESTAMP(10) | YYMMDDHHMM   |
| TIMESTAMP(8) | YYYYMMDD    |
| TIMESTAMP(6) | YYMMDD     |
| TIMESTAMP(4) | YYMM      |
| TIMESTAMP(2) | YY       |
+---------------+----------------+
“完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸
创造最常见的显示尺寸是6、8、12、和14。
你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。
列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。
 
*列如:*
定义字段长度   强制字段长度
TIMESTAMP(0) -> TIMESTAMP(14)
TIMESTAMP(15)-> TIMESTAMP(14)
TIMESTAMP(1) -> TIMESTAMP(2)
TIMESTAMP(5) -> TIMESTAMP(6)
 
所有的TIMESTAMP列都有同样的存储大小,使用被指定的时期时间值的完整精度
(14位)存储合法的值不考虑显示尺寸。不合法的日期,将会被强制为0存储
*这有几个含意: *  www.2cto.com  
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亦然)
*你可以使用下列语句来验证:*
CREATE TABLE test ('id' INT (3) UNSIGNED AUTO_INCREMENT, 'date1'
TIMESTAMP (8) PRIMARY KEY('id'));
INSERT INTO test SET id = 1;
SELECT * FROM test;
+----+----------------+
| id | date1     |
+----+----------------+
| 1 | 20021114    |
+----+----------------+
ALTER TABLE test CHANGE 'date1' 'date1' TIMESTAMP(14);
SELECT * FROM test;
+----+----------------+
| id | date1     |
+----+----------------+
| 1 | 20021114093723 |
+----+----------------+
 
你可以使用TIMESTAMP列类型自动地用当前的日期和时间标记INSERT或UPDATE的操作。
如果你有多个TIMESTAMP列,只有第一个自动更新。自动更新第一个TIMESTAMP列在下列任何条件下发生:
1、列值没有明确地在一个INSERT或LOAD DATA INFILE语句中指定。
2、列值没有明确地在一个UPDATE语句中指定且另外一些的列改变值。(注意一个UPDATE
设置一个列为它已经有的值,这将不引起TIMESTAMP列被更新,因为如果你设置一个列为
它当前的值,MySQL为了效率而忽略更改。)
3、你明确地设定TIMESTAMP列为NULL.
4、除第一个以外的TIMESTAMP列也可以设置到当前的日期和时间,只要将列设为NULL,或NOW()。
CREATE TABLE test (  www.2cto.com  
'id' INT (3) UNSIGNED AUTO_INCREMENT,
'date1' TIMESTAMP (14),
'date2' TIMESTAMP (14),
PRIMARY KEY('id')
);
 
INSERT INTO test (id, date1, date2) VALUES (1, NULL, NULL);
INSERT INTO test SET id= 2;
+----+----------------+----------------+
| id | date1     | date2     |
+----+----------------+----------------+
| 1 | 20021114093723 | 20021114093723 |
| 2 | 20021114093724 | 00000000000000 |
+----+----------------+----------------+
->第一条指令因设date1、date2为NULL,所以date1、date2值均为当前时间第二条指令
因没有设date1、date2列值,第一个TIMESTAMP列date1为更新为当前时间,
而二个TIMESTAMP列date2因日期不合法而变为“00000000000000”
UPDATE test SET id= 3 WHERE id=1;
+----+----------------+----------------+
| id | date1     | date2     |
+----+----------------+----------------+
| 3 | 20021114094009 | 20021114093723 |
| 2 | 20021114093724 | 00000000000000 |
+----+----------------+----------------+
->这条指令没有明确地设定date2的列值,所以第一个TIMESTAMP列date1将被更新为当前时间
 
UPDATE test SET id= 1,date1=date1,date2=NOW() WHERE id=3;  www.2cto.com  
+----+----------------+----------------+
| id | date1     | date2     |
+----+----------------+----------------+
| 1 | 20021114094009 | 20021114094320 |
| 2 | 20021114093724 | 00000000000000 |
+----+----------------+----------------+
->这条指令因设定date1=date1,所以在更新数据时date1列值并不会发生改变而
因设定date2=NOW(),所以在更新数据时date2列值会被更新为当前时间此指令等效为
UPDATE test SET id= 1,date1=date1,date2=NULL WHERE id=3;
因MySQL返回的 TIMESTAMP 列为数字显示形式,你可以用DATE_FROMAT()函数来格式化 TIMESTAMP 列
SELECT id,DATE_FORMAT(date1,'%Y-%m-%d %H:%i:%s') As date1,
DATE_FORMAT(date2,'%Y-%m-%d %H:%i:%s') As date2 FROM test;
+----+---------------------+---------------------+
| id | date1        | date2        |
+----+---------------------+---------------------+
| 1 | 2002-11-14 09:40:09 | 2002-11-14 09:43:20 |
| 2 | 2002-11-14 09:37:24 | 0000-00-00 00:00:00 |
+----+---------------------+---------------------+
 
SELECT id,DATE_FORMAT(date1,'%Y-%m-%d') As date1,
DATE_FORMAT(date2,'%Y-%m-%d') As date2 FROM test;
  www.2cto.com  
+----+-------------+-------------+
| id | date1    | date2    |
+----+-------------+-------------+
| 1 | 2002-11-14 | 2002-11-14 |
| 2 | 2002-11-14 | 0000-00-00 |
+----+-------------+-------------+
 
在某种程度上,你可以把一种日期类型的值赋给一个不同的日期类型的对象。
然而,而尤其注意的是:值有可能发生一些改变或信息的损失:
 
1、如果你将一个DATE值赋给一个DATETIME或TIMESTAMP对象,结果值的时间部分被
设置为'00:00:00',因为DATE值中不包含有时间信息。  
2、如果你将一个DATETIME或TIMESTAMP值赋给一个DATE对象,结果值的时间部分被删除,
因为DATE类型不存储时间信息。
3、尽管DATETIME, DATE和TIMESTAMP值全都可以用同样的格式集来指定,
但所有类型不都有同样的值范围。
例如,TIMESTAMP值不能比1970早,也不能比2037晚,这意味着,一个日期例如'1968-01-01',
当作为一个DATETIME或DATE值时它是合法的,但它不是一个正确TIMESTAMP值!
并且如果将这样的一个对象赋值给TIMESTAMP列,它将被变换为0。  www.2cto.com  
 
*当指定日期值时,当心某些缺陷: *
 
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。

上述内容就是mysql 中TIMESTAMP的作用是什么,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注亿速云行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql 中TIMESTAMP的作用是什么

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

下载Word文档

猜你喜欢

mysql中timestamp类型的作用是什么

在MySQL中,timestamp类型用于存储日期和时间信息,精确到秒级。timestamp类型的字段在插入或更新记录时会自动更新为当前的日期和时间。它通常用于记录数据的创建时间或最后更新时间。timestamp类型的字段可以设置为自动更新
mysql中timestamp类型的作用是什么
2024-04-09

postgresql中timestamp的作用是什么

在postgresql中,timestamp是一种数据类型,用于存储日期和时间信息。它可以存储从公元前4713年到公元后294276年之间的日期和时间。timestamp数据类型非常有用,可以用来记录事件发生的时间戳,比如数据库中的数据插入
postgresql中timestamp的作用是什么
2024-03-02

SQL中TIMESTAMP的作用是什么

在SQL中,TIMESTAMP是一种数据类型,用于存储日期和时间信息。它可以用于记录数据的创建时间、修改时间或其他关键时间戳。TIMESTAMP的作用有以下几个方面:记录数据的创建时间和修改时间:可以在表中的字段中使用TIMESTAMP类
SQL中TIMESTAMP的作用是什么
2024-02-29

pgsql中timestamp的作用是什么

在pgsql中,timestamp的作用是用于存储日期和时间的数据类型。它可以存储时间戳,包括年、月、日、小时、分钟、秒以及毫秒的信息。timestamp数据类型在数据库中常用于记录数据的创建时间或更新时间,以便在需要时准确地追踪数据的变化
pgsql中timestamp的作用是什么
2024-04-09

mysql之TIMESTAMP的用法是什么

在MySQL中,TIMESTAMP是一种日期和时间数据类型,用于存储日期和时间的组合值。TIMESTAMP数据类型有以下特点和用法:存储范围:TIMESTAMP类型可以存储的日期范围是从’1970-01-01 00:00:01’到’2038
mysql之TIMESTAMP的用法是什么
2024-04-09

c#中timestamp的用法是什么

在C#中,timestamp通常用于表示日期和时间的值,例如记录事件发生的时间戳。可以使用DateTime结构来表示timestamp值。以下是一些示例用法:获取当前时间戳:DateTime now = DateTime.Now;格式化时间
c#中timestamp的用法是什么
2024-03-15

pgsql中timestamp的用法是什么

在PostgreSQL中,timestamp是一种日期/时间数据类型,用于存储日期和时间信息。它可以存储日期和时间的精确到秒的值。可以使用timestamp数据类型来存储和操作日期和时间信息,如记录数据的创建时间、更新时间等。以下是一些常
pgsql中timestamp的用法是什么
2024-04-09

postgresql中timestamp的用法是什么

在 PostgreSQL 中,timestamp 是一种数据类型,用于存储日期和时间信息。它可以存储从公元前4713年到公元后294276年的日期和时间。timestamp 数据类型可以包含日期和时间,精确到毫秒。在 PostgreSQL
postgresql中timestamp的用法是什么
2024-03-02

检索存储在 INT 列中作为 MySQL TIMESTAMP 的值的正确方法是什么?

我们可以使用FROM_UNIXTIME()函数来检索值,作为MySQL TIMESTAMP,存储在表的列中的INT。例如,我们有一个名为'test123'的表,其中有一个名为'val1'的列。在这个列中,我们将整数值存储如下-mysql>
2023-10-22

MySQL的timestamp怎么使用

在MySQL中,timestamp是一种用于存储日期和时间的数据类型。它可以用来记录数据的创建或修改时间。要在MySQL中使用timestamp,可以遵循以下步骤:1. 创建一个包含timestamp列的表,可以使用CREATE TABLE
2023-10-18

mysql中datatime与timestamp有什么区别

这篇文章主要介绍了mysql中datatime与timestamp有什么区别,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!mysql中有三种日期类型:date(年-月-日)create table te
2023-06-06

mysql中json_search的作用是什么

MySQL中JSON_SEARCH函数JSON_SEARCH函数在JSON文档中搜索指定键的值。它支持两种路径模式:key(仅匹配键)和value(匹配键和值)。通过高级用法如模糊搜索、正则表达式和返回多个结果,它提供了处理复杂JSON数据的强大工具。优点:高效、灵活、可扩展;缺点:语法复杂、可能存在性能开销。
mysql中json_search的作用是什么
2024-04-12

mysql中json_array的作用是什么

MySQLJSON_ARRAY函数JSON_ARRAY()函数将一系列值转换为JSON数组,方便创建、更新或检索JSON数据。语法为JSON_ARRAY(value1,value2,...,valueN),值可以是字符串、数字、布尔值、NULL或JSON对象。它可用于:创建JSON数组将现有值转换为JSON数组更新JSON数组检索JSON数组元素JSON_ARRAY()函数简单易用,可高效处理大型数据集,提高JSON数据灵活性,适用于存储多个值、提取JSON数组、修改数组元素以及与外部JSON数据源交互的
mysql中json_array的作用是什么
2024-04-10

mysql中MVCC的作用是什么

本篇文章为大家展示了mysql中MVCC的作用是什么,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1、说明多版并发控制MVCC是MySQL InnoDB存储引擎实现隔离等级的具体方法,用于实现提交阅
2023-06-15

MySQL中Like的作用是什么

MySQL中Like的作用是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Like是什么意思?1、Like算作MySQL中的谓词,其应用与is、=、>和
2023-06-14

编程热搜

目录