“活动”结束时间小记
概述
有时我们会发现,在CRM WebUI界面上看到的活动类型单据的抬头结束时间与SAP后台数据库表中的结束时间存在着**一天**_(One Day)_的差异。
如:界面上结束日期为2015年12月16日,后台表中存储的时间戳却为20151216160000,时区:UTC+8(正确的应该为20151215160000)
可以注意到,这种One Day的差异只存在于结束日期/时间上,该单据的开始日期/时间
是正常的
原理
调试crm_order_maintain发现结束时间已经改变,于是进入节点get和set方法查看,发现如下代码。
GET_ENDDATE
SET_ENDDATE
业务逻辑
界面上的结束日期包含了结束日期那一天,而SAP为了在代码层面不会出错,数据库表中存的是第二天的日期。这就类似于<与<=之间的差异。