微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SAP B1:如何检查是否在OIVL表中插入了新数据

如何解决SAP B1:如何检查是否在OIVL表中插入了新数据

在SAP B1中,我想对当前时间之前3小时创建的数据进行计数。

我已经有了这个逻辑

SELECT COUNT(*)
FROM OIVL T0
WHERE T0.CreateDate >= DATEADD(hour,-12,GETDATE())

但是问题是CreateDate列仅包含日期,而没有时间。

有时间但是在smallint

解决方法

鉴于注释中有关SAP B1如何编码CreateTime的讨论,您将需要计算每行的datetime值,以将其与当前时间进行比较,例如:

create table #Example (
  CreateDate date,CreateTime smallint
);
insert #Example (CreateDate,CreateTime) values ('2020-08-30',2324);

select
  CreateDate,CreateTime,CreateDateTime --2020-08-30 23:24:00.000
from #Example
outer apply (
  select dateadd(mi,(CreateTime/100)*60+CreateTime%100,cast(CreateDate as datetime)) as CreateDateTime
) Calc
where CreateDateTime >= dateadd(hour,-12,getdate());

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。