假如上班时间为08:00,某人在正常打卡时间范围内(7:40到08:20区段)打了多次卡,如7:42,7:53,7:58,08:04,08:11,现在要写出离08:00最近的一次时间(7:58),不知如何写?请教,多谢了!!

解决方案 »

  1.   

    程序做:排了序,找最近的
    sql做:top 1 ... order by ...
      

  2.   

    select abs(datediff(second,'08:00:00','07:58:03'))
      

  3.   

    首先我觉得你要考虑一下隔多久找一次
    比如说先在2分钟的范围内找,如果找不到就扩大范围你可以设定是递增一分钟范围查找还是2分钟查找。找到记录为止
    用if 
    begin
    ......//这个其中建议用timebetween去查找相关值
    end
    else if 
    begin
    .......
    end......
      

  4.   

    用timer控件,每隔几分钟记录下?
      

  5.   

    另外也可以用update来修改原纪录,使数据库中只保存当天最后的一次打卡记录