3、字段类型改变为:
datecreated timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
datemodified timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
但是其实不可行,因为一个表只能有一个CURRENT_TIMESTAMP,但你有三个字段。
所以当有多个时间可能还是得结合方式2与方式3来综合处理。当然全都用方式2也就不会提出这种问题了。
DATE_ADD() 函数向日期添加指定的时间间隔。
DATE_SUB() 函数向日期减少指定的时间间隔。
DATE_ADD(date,INTERVAL expr type)
DATE_SUB(date,INTERVAL expr type)
date 参数是合法的日期表达式。
expr 参数是您希望添加的时间间隔。
type 参数可以是下列值:
例:更新某个时间,每个时间加上一个星期
例子:更新某个时间,使每个时间减少一个月
mysql>create table timetest(->id int not null,
->modtime timestamp default current_timestamp on update current_timestamp,
->primary key(id)
->)engine=innodb,default charset=utf8
Query OK, 0 rows affected (0.06 sec)
以下是测试,包括建表时记录时间,插入时记录时间,更新时记录时间:
mysql>insert into timetest(id) values (1),(2),(3)
Query OK, 3 rows affected (0.06 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql>select * from timetest
+----+---------------------+
| id | modtime |
+----+---------------------+
| 1 | 2011-09-21 09:56:24 |
| 2 | 2011-09-21 09:56:24 |
| 3 | 2011-09-21 09:56:24 |
+----+---------------------+
3 rows in set (0.00 sec)
mysql>update timetest set id=10 where id=1
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql>select * from timetest
+----+---------------------+
| id | modtime |
+----+---------------------+
| 2 | 2011-09-21 09:56:24 |
| 3 | 2011-09-21 09:56:24 |
| 10 | 2011-09-21 09:57:15 |
+----+---------------------+
3 rows in set (0.00 sec)
mysql>update timetest set id=4 where id=3
Query OK, 1 row affected (0.05 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql>select * from timetest
+----+---------------------+
| id | modtime |
+----+---------------------+
| 2 | 2011-09-21 09:56:24 |
| 4 | 2011-09-21 09:58:10 |
| 10 | 2011-09-21 09:57:15 |
+----+---------------------+
3 rows in set (0.00 sec)
mysql>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)