带你掌握MYSQL中TIMESTAMP类型

作者:数据库

  字段设置为目今日子,但后来修改时,不再刷新它

平时表中会有三个Create date 创设日期的字段,别的数据库均有暗中同意值的选项。MySQL也可能有私下认可值timestamp,但在MySQL中,不唯有是插入就终于修改也会更新timestamp的值!

表:

Table Create Table


 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

 相比之下,小编的语句少了“on update CU哈弗RENT_TIMESTAMP”或多了“default CURRENT_TIMESTAMP”。如此一来,那些timestamp字段只是在数量insert的小时建马上间,而update时就不会有调换了。当然,假设你尽管想达到这么些目标倒也不在乎

1: 假使定义时DEFAULT CULacrosseRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句皆有,列值为暗中同意使用当前的年月戳,并且自动更新。

2: 借使不使用DEFAULT或ON UPDATE子句,那么它同样DEFAULT CU瑞鹰RENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。

3: 即使唯有DEFAULT CU宝马X5RENT_TIMESTAMP子句,而从未ON UPDATE子句,列值默以为当前时间戳但不自动更新。

4: 假如没用DEFAULT子句,但有ON UPDATE CUMuranoRENT_TIMESTAMP子句,列默感到0并自动更新。

5: 假诺有多少个常量值DEFAULT,该列会有一个暗中同意值,而且不会活动开首化为近期时光戳。假使该列还会有四个ON UPDATE CURubiconRENT_TIMESTAMP子句,那个时间戳会自动更新,不然该列有三个暗中同意的常量但不会自动更新。

    换句话说,你能够利用当前的光阴戳去开端化值和自动更新,或然是内部之一,也可以都不是。(比如,你在概念的时候可以钦定自动更新,但并不开端化。)上边的字段定义表明了这一个处境:

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。

   平常表中会有一个Create date 创设日期的字段,其它数据库均有暗许值的选项。MySQL也可能有暗许值timestamp,但在MySQL中,不只有是插入就终于修改也会更新timestamp的值!

表:

Table Create Table


 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

 相比之下,笔者的语句少了“on update CUEscortRENT_TIMESTAMP”或多了“default CURRENT_TIMESTAMP”。如此一来,那个timestamp字段只是在数据insert的日子创设刻间,而update时就不会有变化了。当然,倘若您正是想达到这一个目标倒也无所谓

1: 假如定义时DEFAULT CUGL450RENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句都有,列值为默许使用当前的时刻戳,并且自动更新。

2: 若是不选用DEFAULT或ON UPDATE子句,那么它一律DEFAULT CU卡宴RENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。

3: 假诺唯有DEFAULT CULANDRENT_TIMESTAMP子句,而从不ON UPDATE子句,列值默感到日前岁月戳但不自动更新。

4: 如果没用DEFAULT子句,但有ON UPDATE CU奥迪Q5RENT_TIMESTAMP子句,列私下认可为0并自动更新。

5: 借使有四个常量值DEFAULT,该列会有叁个默许值,而且不会自行初阶化为当下光阴戳。假使该列还或者有三个ON UPDATE CUPRADORENT_TIMESTAMP子句,这么些小时戳会自动更新,不然该列有三个暗中认可的常量但不会自动更新。

    换句话说,你能够运用当前的年月戳去开头化值和自动更新,只怕是中间之一,也足以都不是。(比方,你在概念的时候能够钦点自动更新,但并不初阶化。)上边包车型客车字段定义表达了那么些景况:

date 制造日期的字段,别的数据库均有暗许值的选项。MySQL也会有暗中同意值timestamp,但在MySQL中,不止是插入就到底修改也...

平日表中会有叁个Create date 创立日期的字段,其余数据库均有默许值的选项。MySQL也是有暗许值timestamp,但在MySQL中,不仅仅是插入就到底修改也会更新timestamp的值!

MYSQL中TIMESTAMP类型是学习MYSQL数据库必要求调整的学识,上面就带你精通MYSQL中TIMESTAMP类型的私下认可值,希望对您读书MYSQL中TIMESTAMP类型有所辅助。

  3 2007-10-08 12:00:37

表:

Table Create Table


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 = 2;

数据:

1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
3 2007-10-08 12:00:37

2、自动INSERT 到当下光阴,可是不自动UPDATE。

故而在MySQL中要记录成立日期还得利用datetime 然后采用NOW() 函数达成!

MYSQL中TIMESTAMP类型的默许值:
 
MYSQL中TIMESTAMP类型能够设定默许值,就疑似其余连串同样。
1、自动UPDATE 和INSERT 到近些日子的日子:
表:
---------------------------------Table   Create

  Table Create Table

1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
在开立新记录和退换现存记录的时候都对这一个数量列刷新

3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  在创建新记录的时候把那些字段设置为0

表:

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、一个表中不能够有几个字段暗许值是方今光阴,否则就能够出错。但是其余的能够。

  3 2007-10-08 12:00:37

于是在MySQL中要记录创设日期还得使用datetime 然后使用NOW() 函数实现!

表:

Table Create Table


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 = 2;

数据:

1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
3 2007-10-08 12:00:37

2、自动INSERT 到目前时间,可是不自动UPDATE。

表:

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
在成立新记录的时候把那个字段设置为给定值,未来修改时刷新它

诚如在数据库结构划设想计中,用datetime替换timestamp字段,用程序来兑现时间的创导和修改,那样能够决定的尤为标准,好处是,不至于你改改该表的其它数据,此时间会随着退换。

修改mysql字段顺序的法门

mysql增加删除主键的措施

教你怎么设置MySql访问限制

MySQL修改密码的三种方法

linux下的常用mysql命令

...

  2: 借使不应用DEFAULT或ON UPDATE子句,那么它一样DEFAULT CUWranglerRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。

、自动UPDATE 和INSERT 到前段时间的年月:

那样一来,就不是创立日期了,当作更新日期来使用相比好!

  3: 假诺唯有DEFAULT CUCRUISERRENT_TIMESTAMP子句,而未有ON UPDATE子句,列值默以为眼后天子戳但不自动更新。

2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP  在成立新记录的时候把这么些
字段设置为当下时刻,但之后修改时,不再刷新它

、自动UPDATE 和INSERT 到当前的光阴:

  Table Create Table

3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  在创制新记录的时候把这一个字段设置为0

您可能感兴趣的篇章:

  • MySQL timestamp的体系与时区实例详解
  • mysql之TIMESTAMP(时间戳)用法详解
  • MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的化解措施
  • Sqlserver timestamp数据类使用介绍
  • mysql From_unixtime及UNIX_TIMESTAMP及DATE_FORMAT日期函数
  • SQL总结timestamp的差值的方式

  1: 假诺定义时DEFAULT CUEscortRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句皆有,列值为默许使用当前的时光戳,并且自动更新。

表:

Table Create Table


CREATE TABLE `t1` (   `p_c` int(11) NOT NULL,  `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP  ) ENGINE=InnoDB DEFAULT CHARSET=gb2312

数据:

insert into t1(p_c) select 4;update t1 set p_c = 3 where p_c = 3;

1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
3 2007-10-08 12:00:37
4 2007-10-08 12:05:19

3、叁个表中不可能有四个字段默许值是眼前时刻,不然就能出错。然而其余的能够。

2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP  在开立新记录的时候把那个
字段设置为当下时刻,但随后修改时,不再刷新它

  2 2007-10-08 12:00:37

那样一来,就不是创建日期了,当作更新日期来选拔相比较好!

1,TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 
在开立新记录和修改现成记录的时候都对这些数据列刷新

  3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在创立新记录的时候把那些字段设置为0

表:

Table Create Table


CREATE TABLE `t1` (   `p_c` int(11) NOT NULL,  `p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP  ) ENGINE=InnoDB DEFAULT CHARSET=gb2312

数据:

insert into t1(p_c) select 4;update t1 set p_c = 3 where p_c = 3;

1 2007-10-08 11:53:35
2 2007-10-08 12:00:37
3 2007-10-08 12:00:37
4 2007-10-08 12:05:19

3、二个表中不能有三个字段私下认可值是日前时光,不然就能出错。可是其余的能够。

  表:

  ---------------------------------

  在创设新记录和修改现存记录的时候都对这些数额列刷新

本文由ca88发布,转载请注明来源

关键词: ca88网址 ca88客户端下载