>

【乐百家lo599】带您明白MYSQL中TIMESTAMP类型

- 编辑:乐百家599手机首页 -

【乐百家lo599】带您明白MYSQL中TIMESTAMP类型

表:

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命令

...

1、自动UPDATE 和INSERT 到当前的时辰: 表: Table Create Table - t1 CREATE TABLE `t1` ( `p_c`...

  1,TIMESTAMP DEFAULT CURRENT_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 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中TIMESTAMP类型的暗中认可值:
 
MYSQL中TIMESTAMP类型可以设定暗中同意值,就像任何门类同样。
1、自动UPDATE 和INSERT 到当前的时辰:
表:
---------------------------------Table   Create

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
在开创新记录的时候把这么些字段设置为给定值,以往修改时刷新它

  数据:

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

表:

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 0000-00-00 00:00:00

那样一来,就不是创设日期了,当作更新日期来行使比较好!

MYSQL中TIMESTAMP类型是上学MYSQL数据库必须求通晓的文化,下边就带你明白MYSQL中TIMESTAMP类型的暗中认可值,希望对你学习MYSQL中TIMESTAMP类型有所补助。

  1 2007-10-08 11:53:35 0000-00-00 00:00:00

所以在MySQL中要记录创制日期还得利用datetime 然后采用NOW() 函数完结!

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


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、一个表中不可能有多少个字段暗许值是日前时间,不然就可以出错。不过别的的能够。

  表:

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

  2 2007-10-08 12:00:37

、自动UPDATE 和INSERT 到前段时间的光阴:

  相比较之下,小编的语句少了“on update CUWranglerRENT_TIMESTAMP”或多了“default CURRENT_TIMESTAMP”。如此一来,这几个timestamp字段只是在数码insert的时刻构建即间,而update时就不会有转移了。当然,要是你纵然想达到这些指标倒也不在乎

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

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

2,TIMESTAMP DEFAULT CURRENT_TIMESTAMP  在开立新记录的时候把那几个
字段设置为近些日子时间,但事后修改时,不再刷新它

  2 2007-10-08 12:00:37 0000-00-00 00:00:00

表:

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 CUHavalRENT_TIMESTAMP”或多了“default CURRENT_TIMESTAMP”。如此一来,那一个timestamp字段只是在数量insert的时日建立时间,而update时就不会有转移了。当然,若是你固然想达到这一个目标倒也不在乎

1: 假若定义时DEFAULT CU安德拉RENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句都有,列值为默许使用当前的时间戳,并且自动更新。

2: 如若不利用DEFAULT或ON UPDATE子句,那么它一样DEFAULT CULANDRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。

3: 假如唯有DEFAULT CU逍客RENT_TIMESTAMP子句,而尚未ON UPDATE子句,列值默以为当下光阴戳但不自动更新。

4: 假如没用DEFAULT子句,但有ON UPDATE CU途锐RENT_TIMESTAMP子句,列默感觉0并自动更新。

5: 若是有一个常量值DEFAULT,该列会有二个暗中同意值,而且不会自动早先化为前段时间时间戳。倘诺该列还会有三个ON UPDATE CU奇骏RENT_TIMESTAMP子句,那几个时间戳会自动更新,不然该列有一个暗中同意的常量但不会自动更新。

    换句话说,你能够动用当前的小运戳去伊始化值和自动更新,或然是内部之一,也能够都不是。(比方,你在概念的时候能够钦点自动更新,但并不开头化。)下边包车型大巴字段定义表达了这么些情形:

date 创制日期的字段,别的数据库均有默许值的选项。MySQL也可以有暗中同意值timestamp,但在MySQL中,不仅仅是插入固然是修改也...

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

  3,TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 在开立异记录的时候把这么些字段设置为0

  Table Create Table

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

本文由乐百家数据库发布,转载请注明来源:【乐百家lo599】带您明白MYSQL中TIMESTAMP类型