SQL子查询 - 数据类型不匹配错误

时间:2014-11-13 12:05:35

标签: sql ms-access

我希望使用子查询列出学生姓名及其课程代码,以供周一下午2点至6点没有时间表讲座的学生使用

我的SQL查询是

SELECT fname, surname, courseCode, dayReq, timeReq
FROM student, roomBooking
WHERE id IN
(SELECT sID
FROM studentReg
WHERE NOT dayReq = "Monday" AND timeReq BETWEEN "14:00:00" AND "18:00:00");

当我尝试执行此操作时,我得到"标准表达式中的数据类型不匹配"这对应于timeReq BETWEEN" 14:00:00" AND" 18:00:00"一部分。

timeReq是日期/时间数据类型,所以我不明白为什么我会收到此错误?

1 个答案:

答案 0 :(得分:0)

尝试使用DATEPART函数从timeReq获取小时,然后将其与您的间隔进行比较,如下所示

SELECT fname, 
       surname, 
       coursecode, 
       dayreq, 
       timereq 
FROM   student, 
       roombooking 
WHERE  id IN (SELECT sid 
              FROM   studentreg 
              WHERE  NOT dayreq = "monday" 
                     AND Datepart("h", timereq) BETWEEN 14 AND 18)