`

[转]MYSQL中TIMESTAMP类型的默认值

阅读更多
转自:http://www.cnblogs.com/spring4/archive/2012/02/29/2483765.html
MYSQL中TIMESTAMP类型的默认值
  
MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样。
1、自动UPDATE 和INSERT 到当前的时间:
表:
———————————
Table   Create Table                                                                         
—— ————————————————————————————-
t1      CREATE TABLE `t1` (                                                                  
          `p_c` int(11) NOT NULL,                                                            
          `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
        ) ENGINE=InnoDB DEFAULT CHARSET=gb2312                                              
数据:
1    2007-10-08 11:53:35
2    2007-10-08 11:54:00
insert into t1(p_c) select 3;
update t1 set p_c = 2 where p_c = 5;
数据:
1    2007-10-08 11:53:35
5    2007-10-08 12:00:37
3    2007-10-08 12:00:37
2、自动INSERT 到当前时间,不过不自动UPDATE。
表:
———————————
Table   Create Table                                             
—— ———————————————————
t1      CREATE TABLE `t2` (                                      
          `p_c` int(11) NOT NULL,                                
          `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP 
        ) ENGINE=InnoDB DEFAULT CHARSET=gb2312                  
数据:
insert into t2(p_c) select 4;
update t2 set p_c = 3 where p_c = 5;
1    2007-10-08 11:53:35
2    2007-10-08 12:00:37
5    2007-10-08 12:00:37
4    2007-10-08 12:05:19
3、一个表中不能有两个字段默认值是当前时间,否则就会出错。不过其他的可以。
表:
———————————
Table   Create Table                                                   
—— —————————————————————
t1      CREATE TABLE `t1` (                                            
          `p_c` int(11) NOT NULL,                                      
          `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,       
          `p_timew2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' 
        ) ENGINE=InnoDB DEFAULT CHARSET=gb2312                        
数据:
1    2007-10-08 11:53:35    0000-00-00 00:00:00
2    2007-10-08 12:00:37    0000-00-00 00:00:00
3    2007-10-08 12:00:37    0000-00-00 00:00:00
4    2007-10-08 12:05:19    0000-00-00 00:00:00

 

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

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

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

4,TIMESTAMP DEFAULT ‘yyyy-mm-dd hh:mm:ss’ ON UPDATE CURRENT_TIMESTAMP 
在创建新记录的时候把这个字段设置为给定值,以后修改时刷新它

分享到:
评论

相关推荐

    MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数

    在MySQL 5.6中,`TIMESTAMP`数据类型和`explicit_defaults_for_timestamp`参数是数据库管理和时间戳处理的关键元素。`TIMESTAMP`通常用于记录数据记录的创建或修改时间,而`explicit_defaults_for_timestamp`参数则...

    mysql中datetime类型设置默认值方法

    在本篇内容中,我们将深入探讨如何在MySQL中为datetime类型设置默认值。 首先,当你创建一个新的表时,可以直接在建表语句中为datetime字段指定默认值为CURRENT_TIMESTAMP。例如,以下是一个创建包含datetime字段`...

    MySQL的datetime设置当前时间为默认值[定义].pdf

    MySQL 中的 datetime 类型字段无法使用函数作为默认值,因此无法使用 `create_time datetime default now()` 的形式设置默认值。代替的方案是使用 TIMESTAMP 类型代替 DATETIME 类型。 TIMESTAMP 类型有两个重要的...

    MySQL表字段设置默认值(图文教程及注意细节)

    在SQL Server(MSSQL)中,我们可以为`date`类型设置`GETDATE()`作为默认值,为`char`类型设置`NULL`,但在MySQL中,这些规则并不适用。例如,对于MySQL,`date`类型默认值应留空(NULL),`char`类型如果不能为空,...

    mysql之TIMESTAMP(时间戳)用法详解

    MySQL中的TIMESTAMP字段类型是用来存储时间戳值的,它可以记录自1970年1月1日00:00:00 UTC(协调世界时)以来的秒数。TIMESTAMP在不同的情境下有不同的用法,这主要体现在它的默认值和更新策略上。 1. **TIMESTAMP ...

    Mysql中的Datetime和Timestamp比较

    MySQL数据库系统中,时间数据类型是用来存储日期和时间值的,其中包括`DATE`、`DATETIME`和`TIMESTAMP`。这些类型在某些方面相似,但在其他方面却有着明显的区别。下面将详细介绍`DATETIME`和`TIMESTAMP`的比较,并...

    MySql于Java数据类型对应列表

    本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...

    mysql 数据类型TIMESTAMP

    在mysql中timestamp数据类型是一个比较特殊的数据类型,他可以自动在你不使用程序更新情况下只要你更新了记录timestamp会自动更新时间 通常表中会有一个Create date 创建日期的字段,其它数据库均有默认值的选项。...

    mysql 设置默认的时间值

    TIMESTAMP 类型是 MySQL 中的一种日期时间类型,可以自动更新当前时间。使用 TIMESTAMP 类型可以实现自动设置默认时间值的功能。例如,创建一个名为 `test_time` 的表,其中包含一个 `create_time` 字段,类型为 ...

    MySql性能调优(一)字段类型的选取之时间类型

    在本文中,我们将讨论 MySQL 中的时间类型,包括 DATE、TIME、DATETIME、TIMESTAMP 和 YEAR 等五种类型,并介绍各自的特点和应用场景。 DATE 类型 DATE 类型用于存储日期信息,格式为 ‘YYYY-MM-DD’,占用 3 字节...

    mysql timestamp数据类型

    MySQL中的`TIMESTAMP`数据类型是一个非常有用但同时也存在特定限制的时间戳字段。它用于存储日期和时间信息,与`DATETIME`数据类型相似,但有一些显著的区别。 `TIMESTAMP`在MySQL中占据4个字节,可以表示从1970年1...

    MySQL 5.6 中 TIMESTAMP 的变化分析

    MySQL中的TIMESTAMP数据类型在不同版本之间有着显著的差异,特别是在MySQL 5.6.6之后。在理解这些差异之前,我们首先需要了解TIMESTAMP的基本概念。TIMESTAMP用于存储日期和时间信息,它通常占用4个字节,可以表示从...

    mysql数据类型

    MySQL 数据类型是指在 MySQL 中存储数据的格式,包括整型、浮点型、定点型、字符串、日期时间型、枚举型等多种类型。下面将对 MySQL 数据类型进行详细的介绍。 整型 MySQL 中的整型包括 tinyint、smallint、...

    MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法

    在MySQL数据库中,`TIMESTAMP`数据类型常用于记录时间戳,它允许自动初始化或更新为当前日期和时间。然而,不同版本的MySQL对`TIMESTAMP`列的默认值和自动更新行为有不同的处理方式,这可能导致在不同环境下的兼容性...

    MYSQL中怎样设列的默认值为Now()的介绍[文].pdf

    总的来说,虽然MySQL不支持直接在列定义中使用`NOW()`作为默认值,但通过使用`TIMESTAMP`列并利用其自动更新特性,可以实现类似的效果,记录数据的创建或修改时间。在处理`TIMESTAMP`列时,理解其显示尺寸和存储精度...

    MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误

    在MySQL 5.6中,当你遇到"TIMESTAMP with implicit DEFAULT value is deprecated"这个警告时,这表明你在数据库的表定义或数据插入语句中使用了时间戳(TIMESTAMP)字段,并且该字段没有显式地设定默认值。这种做法在...

    MSql与Mysql的转换

    例如,MS SQL中的`datetime`在MySQL中可能对应为`datetime`或`timestamp`,而`money`类型在MySQL中通常用`decimal`来表示。因此,转换过程中需要对数据类型进行适配,以确保数据的一致性和完整性。 接下来,我们...

Global site tag (gtag.js) - Google Analytics