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的官方文档,对这个函数的例子也没有使用字段名的,也没查出个所以然来。请高手指教。
解决方案 »
- PHP网页访问mysql数据没有更新,求解。。
- mysql数据库同步问题,纠结死了,请帮忙看一下!
- Mysql长时间运行无法读取数据问题
- mysql能实现桥接吗?就是象sqlserver一样在数据源(ODBC)里面添加数据源一样,能实现吗?
- 关于数据库备份的问题?
- 请问怎样得到mysql中的BLOB类型的字段值的大小
- 请教各位大侠一个有点难度的截取出字段中指定的字符串的问题.
- mysql的数据怎么才能导入到ORACLE数据库中?
- 请教一下什么时候需要考虑表的链接查询.
- MySQL是不是输入的SQL指令长度不能超过一定的长度?
- mysql 同表的列复制
- 如何用sql语句查询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。
是不是这个设置,造成了我现在遇到的状况呢。客户端工具上发现“根据当前时间戳更新”被勾选了。大概就是这里错误了吧?