SAP B1:如何检查是否在 OIVL 中插入了新数据 table
SAP B1: How to check if new data was inserted in OIVL table
在 SAP B1 中,我想统计在当前时间之前 3 小时创建的数据。
我已经有这个逻辑了
SELECT COUNT(*)
FROM OIVL T0
WHERE T0.CreateDate >= DATEADD(hour, -12, GETDATE())
但问题是 CreateDate
列只包含日期,没有时间。
有时间但是在smallint
鉴于评论中关于 CreateTime 如何由 SAP B1 编码的讨论,您将需要计算每一行的日期时间值以将其与当前时间进行比较,例如:
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());
在 SAP B1 中,我想统计在当前时间之前 3 小时创建的数据。
我已经有这个逻辑了
SELECT COUNT(*)
FROM OIVL T0
WHERE T0.CreateDate >= DATEADD(hour, -12, GETDATE())
但问题是 CreateDate
列只包含日期,没有时间。
有时间但是在smallint
鉴于评论中关于 CreateTime 如何由 SAP B1 编码的讨论,您将需要计算每一行的日期时间值以将其与当前时间进行比较,例如:
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());