我想求出每天18:00:00以后有打卡记录的人每天从15:30:00到22:00:00的记录?sqlA = "SELECT * FROM CheckTime WHERE EmID IN(SELECT DISTINCT EmID FROM CheckTime WHERE NTime1>=('" & NDate & " 18:00:00" & "'))"
MsgBox (sqlA)
rsA.Open sqlA, aNc, 1, 1
MsgBox (rsA.RecordCount)上述做法一直未能得到正确结果,如何解决?

解决方案 »

  1.   

    SELECT * FROM CheckTime WHERE EmID IN(SELECT DISTINCT EmID FROM CheckTime WHERE datepart(hh,NTime1)>='18' ) and convert(time,NTime1) between '15:30:00' and '20:00:00'试试这个,你那个只是筛选出18点以后有打卡记录的人,并未再次筛选15:30~20点的数据
      

  2.   

    SELECT * FROM CheckTime 
    WHERE EmID IN(SELECT DISTINCT EmID FROM CheckTime WHERE CAST(CONVERT(VARCHAR(10),NTime1,108) AS DATETIME) > '18:00:00')
    AND CAST(CONVERT(VARCHAR(10),NTime1,108) AS DATETIME) BETWEEN '15:30:00' AND '22:00:00'