关于状态更新时间字段取值的问题

create by:关彦明
create time:2016-07-27
-------------------------------------------------------------------------
很多业务表中我们都会建两个字段:createTime、updateTime,为了写代码方便,在数据新增时会在业务代码里给createTime赋值,同时给updateTime也赋值; 
在业务操作时,会更新updateTime时间值,如预约后取消预约,需要更新取消时间; 
在采用单台业务服务器时,从业务代码里取时间值更新没有问题,采用多台服务器集群工作时,由于每台服务器上的时间可能不一致,导致出现的结果是更新时间比创建时间小; 
如下图实例:
 
是不是闹笑话了?呵呵~
 
解决办法:
推荐:时间值全部使用数据库服务器时间。
(不推荐取业务服务器时间)
 
MySQL:
INSERT INTO tableName (createTime,updateTime) values(now(),now());

UPDATE tableName SET updateTime = now() WHERE id = idValue;

SQL Server:

INSERT INTO tableName (createTime,updateTime) values(getdate(),getdate());

UPDATE tableName SET updateTime = getdate() WHERE id = idValue;

转载请注明原文地址: http://www.cnblogs.com/guanym/p/5710293.html

原文地址:https://www.cnblogs.com/guanym/p/5710293.html