如果最近插入了日期,如何恢复正确的日期
How to restore the right date if it was inserted lately
如果我有 ZKTime 机器来登记员工的出勤。
有时这台机器会在 sql 服务器数据库中插入大量交易,但之后的日期有误,例如
8-2103
而不是 11-2016
这个问题的可能原因是什么?如果我无法检测到问题,如何恢复到正确的日期?
我查看了您提供的供应商 link,但在这种情况下没有帮助。由于 SQL 服务器之外的项目,恐怕我们无法回答这个问题。我相信您需要为此联系供应商支持。
您需要找出的问题是:
- 时间机器如何计算CheckTime数据?
- 时间机器如何存储CheckTime数据?
- 机器如何创建文件导出到SQL服务器?
这似乎是系统如何记录 CheckTime 数据或如何将数据导出/写入 SQL 服务器的问题。
就更正问题而言,基本的更新语句将解决它,但由于日期不同,您需要为每个案例编写一个独特的更新。
一种可能的解决方案是使用触发器来验证日期并相应地更新日期。假设table的主键为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
如果我有 ZKTime 机器来登记员工的出勤。
有时这台机器会在 sql 服务器数据库中插入大量交易,但之后的日期有误,例如
8-2103
而不是 11-2016
这个问题的可能原因是什么?如果我无法检测到问题,如何恢复到正确的日期?
我查看了您提供的供应商 link,但在这种情况下没有帮助。由于 SQL 服务器之外的项目,恐怕我们无法回答这个问题。我相信您需要为此联系供应商支持。
您需要找出的问题是:
- 时间机器如何计算CheckTime数据?
- 时间机器如何存储CheckTime数据?
- 机器如何创建文件导出到SQL服务器?
这似乎是系统如何记录 CheckTime 数据或如何将数据导出/写入 SQL 服务器的问题。
就更正问题而言,基本的更新语句将解决它,但由于日期不同,您需要为每个案例编写一个独特的更新。
一种可能的解决方案是使用触发器来验证日期并相应地更新日期。假设table的主键为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