【问题标题】:SQL Sub Query - data type mismatch errorSQL 子查询 - 数据类型不匹配错误
【发布时间】:2014-11-13 12:05:35
【问题描述】:

我想使用子查询列出学生姓名及其课程代码,适用于周一下午 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 是日期/时间数据类型,所以我不明白为什么会出现此错误?

【问题讨论】:

  • 嗨,劳拉,你能不能给我们一个你的表格内容的例子(学生,房间预订)
  • Laura 请提供表结构或表的 ddl 或与查询相关的内容
  • 为什么要对student 和roomBooking 进行交叉连接?

标签: sql ms-access


【解决方案1】:

尝试使用 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) 

【讨论】:

猜你喜欢
  • 2016-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-27
  • 2012-04-12
  • 1970-01-01
相关资源
最近更新 更多