怎样利用服务器的时间来控制多用户报到,就是统一时间~~(200分)

  • 主题发起人 主题发起人 whdgd
  • 开始时间 开始时间
W

whdgd

Unregistered / Unconfirmed
GUEST, unregistred user!
本人做了一个简单的考勤系统,用户个人考勤,如果晚来把系统时间一改就又能考勤了。有没有方法能使用服务器的时间。最好是能客户每秒读一次。
 
加入域后,客户端会自动和域控制器对时的。
 
to:siaosa<br>客户端关闭Windows Time服务,即便加入域,也不不不会自动和域控制器对时吧。<br><br>to:whdgd<br>使用服务器时间来进行验证就不会有任何问题。<br>比如,你要把考勤结果写入数据库的,那么,干脆在服务器写一个存储教程进行登录验证,在这个验证里进行时间比对,以确定是否晚到了。
 
to:hegyi<br>能详细些吗?
 
Windows Time默认是开启的,没事关它干啥。我目前就是这样使用的,域工作站都能很准确的与域控制自动对时
 
考勤就是要故意限制的,能关就没作用了。还是问下hegyi,能否给出个interbase的SQL语句获取服务器端的时间就OK了,我试了 select getdate() as sj from temp不行,不能用,我用的dbExpress
 
select &nbsp; CURRENT_DATE,CURRENT_TIME &nbsp; &nbsp; from &nbsp; rdb$database
 
谢谢你们
 
迟到了,还想考勤通过,当然会去关闭服务了。<br><br>不同的数据库,语言会不一样,比如你使用SqlServer,通过刷卡考勤,可能这样:<br>create procedure KQ<br>@ID:int &nbsp;--卡号<br>as<br>declare @Time DataTime<br>select @Time=cast(Ltrim(str(datepart(yyyy,getdate)))+'/'+Ltrim(str(datepart(mm,getdate())))+'/'+Ltrim(str(datepart(dd,getdate())))+' 9:00:00' as datetime)<br>--9点上班 找找,可能还有效率更高的方法形成当天考勒时间,没时间细究了<br>if getdate()&lt;=@time then<br>begin<br>&nbsp; if not exists(select * from KQB where ID=@ID and 日期=今天)<br>&nbsp; insert into KQB (签到,日期,签到时间) values (true,今天,getedate())<br>&nbsp; --如果有了,不进行第二次签到,因此什么也不做<br>end<br>else<br>begin<br>&nbsp; --迟到,看你要做什么<br>&nbsp; --至少还应加一条记录,以便知道签到过<br>&nbsp; if not exists(select * from KQB where ID=@ID and 日期=今天)<br>&nbsp; insert into KQB (签到,日期,签到时间) values (false,今天,getedate())<br>end<br><br>注意,“今天”的形成方法参考@time。日期和签到时间都可以使用默认值,从而使上面的语句更精简。
 
后退
顶部