如果我有ZKTime台机器来注册员工的出勤率。
有时这台机器会在sql server db中插入大量事务,而日期错误就像
一样 static
代替8-2103
如果我无法检测到问题,这个问题的可能原因是什么以及如何恢复到正确的日期?
答案 0 :(得分:4)
我查看了您提供的供应商链接,但在这种情况下无效。由于SQL Server以外的项目,我担心我们无法回答这个问题。我相信您需要联系供应商支持。
您需要了解的问题是:
这似乎是系统如何记录CheckTime数据的问题,或者是如何将数据导出/写入SQL服务器的问题。
就纠正问题而言,基本的更新声明会修复它,但由于有不同的日期,您需要为每个案例编写一个唯一的更新。
答案 1 :(得分:1)
一种可能的解决方案是使用触发器来验证日期并相应地更新日期。假设该表具有主键作为id,如果新插入的行具有超过今天的日期,则可以将其重置为当前日期时间,因为员工'出勤记录可能在将来。
CREATE TRIGGER CorrectTheDate on Config
FOR INSERT
AS
DECLARE @CT DateTime
DECLARE @id int
SELECT @CT = i.CheckTime FROM inserted i;
SELECT @id= i.id FROM inserted i;
if(@CT >= DATEADD(dd,1,getdate()))
UPDATE MyTable SET CheckTime=getdate() WHERE id=@id
GO