zoukankan      html  css  js  c++  java
  • MySQL中CURRENT_TIMESTAMP(转)

    1. MySQL 获得当前时间戳函数:current_timestamp, current_timestamp()

     代码如下  

    mysql> select current_timestamp, current_timestamp();

    +---------------------+---------------------+
    | current_timestamp | current_timestamp() |
    +---------------------+---------------------+
    | 2008-08-09 23:22:24 | 2008-08-09 23:22:24 |
    +---------------------+---------------------+


    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。

    总结

    1.第一次插入时记录一次时间戳
    2.每次更新都更新时间戳
    3.只记录简要时间,比如Date
    如果是第一种和第二种情况,使用timestamp相比datetime要更为方便些。timestamp默认值有三种:

    ■无
    ■NULL
    ■NOT NULL DEFAULT CURRENT_TIMESTAMP
    ■NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    其中,

    ■CURRENT_TIMESTAMP - 当更新此条记录时,时间戳不会改变
    ■CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP - 当更新此条记录时,时间戳将会改变,变为最新时间
    设置CURRENT_TIMESTAMP默认值后,插入记录还是更新记录都不需要维护该字段,该字段完全由MySQL维护,就像AutoIncrement字段一样,但如果使用上文设置的datetime字段,则需要手动构造时间更新,比如类似now()等。

    例:

    <if test="updatetime != null">
        updatetime = now()
    </if>    

    对CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,有个特殊情况,假如你更新的字段值(UPDATE)没有变化时,MySQL将会忽略更新操作,所以,时间戳也不会改变。另外,如果有多个CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP列,那么MySQL只会更新第一个。

  • 相关阅读:
    etcd:从应用场景到实现原理的全方位解读
    open-falcon编写的整个脑洞历程
    开源还是商用?十大云运维监控工具横评
    我的后端开发书架2015 2.0版
    【MDCC 2015】友盟数据平台负责人吴磊:移动大数据平台的架构与实践
    Effective Go
    Airbnb JavaScript Style Guide
    Google HTML/CSS Style Guide
    nservicebus教程-目录
    测试
  • 原文地址:https://www.cnblogs.com/McCa/p/6009778.html
Copyright © 2011-2022 走看看