更新数据时如何使时间自动更新

更新数据时不能使用time类型

使用timestamp类型才可以自动获取当前系统时间

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目前不支持列的Default
为函数的形式,如达到你某列的默认值为当前更新日期
与时间的功能,你可以使用TIMESTAMP列类型下面就详细说明TIMESTAMP列类型

*TIMESTAMP列类型*

TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为一秒,其值作为数字显示。

TIMESTAMP值显示尺寸的格式如下表所示:

+---------------+----------------+

| 列类型    | 显示格式    |

| TIMESTAMP(14) | YYYYMMDDHHMMSS | 

| TIMESTAMP(12) | YYMMDDHHMMSS  |

| TIMESTAMP(10) | YYMMDDHHMM   |

| TIMESTAMP(8) | YYYYMMDD    |

| TIMESTAMP(6) | YYMMDD     |

| TIMESTAMP(4) | YYMM      |

| TIMESTAMP(2) | YY       |

+---------------+----------------+

“完整”TIMESTAMP格式是14位,但TIMESTAMP列也可以用更短的显示尺寸
创造最常见的显示尺寸是6、8、12、和14。

你可以在创建表时指定一个任意的显示尺寸,但是定义列长为0或比14大均会被强制定义为列长14。

列长在从1~13范围的奇数值尺寸均被强制为下一个更大的偶数。

更新数据时如何使时间自动更新,布布扣,bubuko.com

时间: 2024-11-08 22:21:04

更新数据时如何使时间自动更新的相关文章

SQL 更新数据时触发器造成的性能问题

有时候,我们更新数据时,发现更新的时间很长,一般我们会想到查询的性能很慢,是索引引起的.但有时候不一定,触发器也会造成性能问题. 我们需要在更新数据时,先禁用触发器,然后再恢复 1 --禁用触发器 2 DISABLE TRIGGER 触发器名称 ON 表 3 --启用触发器 4 ENABLE TRIGGER 触发器名称 ON 表

织梦dedecms 5.7解决修改文章后,发布时间自动更新的方法

修改方法解决织梦cms修改文章后,发布时间自动更新的方法,非常简单: 找到下面的文件和代码: dede/templets/article_edit.htm 把 1 $nowtime = GetDateTimeMk(time()); 改成 1 $nowtime = GetDateTimeMk($arcRow["pubdate"]); 这样就可以保证修改文章后,发布文章的时间仍然是老时间,而非修改文章时的时间

数据库更新数据时的传值问题

如果数据库中有多列值时,但是不定个数更新是需要采取“先通过查找数据库中的所有数据保存为一个model类,再给相应要改变的值复制,其他的更新的值保持原有数据不变” 比如:DAL(数据访问层) /// <summary> /// 更新数据,虽然有的时候只是更新某个值,其他的值可以原样更新.在更新之前先要查询一下原有的数据,以便于不更新没必要的更新 /// </summary> /// <param name="model"></param>

在Oracle中更新数据时,抛出:ORA-01008: not all variables bound

在Oracle中更新数据时,抛出了一个 :ORA-01008 not all variables bound, 我的理解是不是所有的变量/参数都有边界,不懂: 后来知道了,原来是“不是所有变量/参数都确定”, 就是有些变量没有指定,缺少变量参数, 最后发现是因为在写三层时少写了一个"new OracleParameter(":ID",userinfo.ID);" 导致的.

SQL中使用UPDATE更新数据时一定要记得WHERE子句

我们在使用 SQL 中的 UPDATE 更新数据时,一般都不会更新表中的左右数据,所以我们更新的数据的 SQL 语句中会带有 WHERE 子句,如果没有WHERE子句,就回更新表中所有的数据,在 mysql 中,我们可以设置sql_safe_updates 这个自带的参数来解决,,当该参数开启的情况下,我们必须在 UPDATE 语句后携带 WHERE 条件,否则就会报错.set sql_safe_updates=1; 表示开启该参数.下面是开启sql_safe_updates参数后不带  WHE

Mysql更新数据时,报 “You can&#39;t specify target table &#39;message &#39; for update in FROM clause” 解决办法

报错的SQL为: delete from message where id not in  (select min(id) as id from message group by content); 报错信息的中文意思为:不能在FROM子句中更新  message表数据,原因是 "不能在从本表中查出数据范围后,然后直接更新本表", 解决方法思路是,让数据库认为,你查出的数据范围,是不从本表中查出来的,实现步骤如下: 1.用as,给查出的数据表,设置别名为a,即 (select min(

JS时间自动更新

js部分: <!--自动更新时间--><script>function show(){var date = new Date(); //日期对象var now = "";now = date.getFullYear()+"年"; //读英文就行了now = now + (date.getMonth()+1)+"月"; //取月的时候取的是当前月-1如果想取当前月+1就可以了now = now + date.getDate(

Mysql 添加 create_time, update_time 创建时间 更新时间 自动更新

# 添加创建 更新 时间字段 ALTER TABLE `表名` ADD COLUMN `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `最后一个列名`, ADD COLUMN `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `create_time`; 执行后, 会批量更新 现有数据全部自动更新为当前时间,  新插入的数据时候自动更新插入

SQL更新数据时多个字段时合在一起的写法

作者:iamlaosong 正常更新一个表中多个字段时,字段是分开写的,例如: update tb_county t set t.prov_name = '安徽', t.city_name = '合肥市', t.xs_mc = '庐阳区' where t.xs_code = '2300'; 可是,更新的值如果来自一个子查询,则这些字段是可以合在一起写的,例如: update tb_county t set (t.prov_name, t.city_name, t.xs_mc) = (select