一张外出纪录表
id   PlanReTime   ReTime   .....
01   14:37:11     15:01:11
02   18:30:15 
03   20:15:14
04   22:37:23当用户回到公司的时候,要插入和计划时间最近的一条记录的ReTime字段,这个要怎么判断!比如20:30:00回到公司,我要怎么找到id为03的数据,并插入当前时间~~

解决方案 »

  1.   

    UPDATE 表名 SET ReTime = CONVERT(varchar(8),getdate(),114)
    WHERE id = (SELECT TOP 1 id FROM 表名 
                 WHERE PlanReTime<convert(varchar(8),getdate(),114) AND ReTime is NULL
                 ORDER BY datediff(mi,PlanReTime,convert(varchar(8),getdate(),114)))
      

  2.   

    UPDATE  表名 SET ReTime = CURTIME()
    WHERE   id = (SELECT id, min(ABS(time_to_sec(PlanReTime) - time_to_sec(CURTIME())))  
                  FROM   表名  
                  WHERE  time_to_sec(PlanReTime) < time_to_sec(CURTIME()) and ReTime = NULL)