UPDATE logs SET visit_end = DATE_ADD(visit_star,INTERVAL time_taken SECOND)表中的三个字段:
visit_star和visit_end是timestamp类型,time_taken是int类型。本意是想更新visit_end字段,使之的结果为visit_star加time_taken秒。且不论visit_end的结果对不对,一执行这个语句,发现visit_star的时间被修改了。
请问,这种情况是什么原因。
mysql的官方文档,对这个函数的例子也没有使用字段名的,也没查出个所以然来。请高手指教。
visit_star和visit_end是timestamp类型,time_taken是int类型。本意是想更新visit_end字段,使之的结果为visit_star加time_taken秒。且不论visit_end的结果对不对,一执行这个语句,发现visit_star的时间被修改了。
请问,这种情况是什么原因。
mysql的官方文档,对这个函数的例子也没有使用字段名的,也没查出个所以然来。请高手指教。
-> ;
Query OK, 0 rows affected (0.00 sec)mysql> insert into test2 values(now(),10,now());
Query OK, 1 row affected (0.00 sec)mysql> select * from test2;
+---------------------+------+---------------------+
| a | b | c |
+---------------------+------+---------------------+
| 2013-04-11 18:17:48 | 10 | 2013-04-11 18:17:48 |
+---------------------+------+---------------------+
1 row in set (0.00 sec)mysql> update test2 set a=date_add(c,interval b second);
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0mysql> select * from test2;
+---------------------+------+---------------------+
| a | b | c |
+---------------------+------+---------------------+
| 2013-04-11 18:17:58 | 10 | 2013-04-11 18:17:48 |
+---------------------+------+---------------------+
1 row in set (0.00 sec)mysql>
desc命令后,
在Extra栏,看到了on update CURRENT_TIMESTAMP。
是不是这个设置,造成了我现在遇到的状况呢。客户端工具上发现“根据当前时间戳更新”被勾选了。大概就是这里错误了吧?