mysql current_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()等。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HeidiSQL是一款用于管理和操作MySQL数据库的图形化工具。在HeidiSQL,可以使用CURRENT_TIMESTAMP()函数来设置列的默认值为当前的日期和时间。在你的问题,如果你想在HeidiSQL创建一个名为addtime的列,并将其默认值设置为当前的日期和时间,你可以使用以下的SQL语句: ALTER TABLE `user` MODIFY COLUMN `addtime` TIMESTAMP DEFAULT CURRENT_TIMESTAMP(); 这条语句将修改user表的addtime列的定义,将其数据类型改为TIMESTAMP,并将默认值设置为当前的日期和时间。这样,在插入新的数据时,如果没有指定addtime列的值,它将自动被设置为当前的日期和时间。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [mysqlTIMESTAMP(时间戳)用法详解](https://blog.csdn.net/weixin_34242331/article/details/85837507)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [如何写mysql的定时任务](https://blog.csdn.net/weixin_33686714/article/details/86225001)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值