我在vb6中构建一个程序,它要求我在一个表中获取具有return_date字段的行,该字段显然具有日期/时间数据类型,并且它是空白的。
所以在我的系统中,我想构建一个查询来获取未返回的书籍。即return_date字段为空。
SELECT *
FROM loans
WHERE return_date = ""
我尝试了以上但是它说数据类型不匹配...错误......!
有任何建议......?
答案 0 :(得分:2)
使用单引号,或者如果没有日期时该字段为空,则使用where return_date is null
答案 1 :(得分:2)
如果return_date确实是日期/时间数据类型,则空白表示该字段为空。因此,请将其用作WHERE条件。
SELECT * FROM Loans WHERE return_date Is Null;
编辑:发生数据类型不匹配错误,因为您要求数据库引擎将字符串值(“”)与日期/时间字段进行比较。
Edit2 :另一个答案建议使用单引号。单引号将产生相同的“条件表达式中的数据类型不匹配”错误,因为在将空字符串与日期/时间字段进行比较时OP使用双引号。
我创建了一个带有id(autonumber)和return_date(日期/时间)字段的贷款表,并添加了2条记录,其中一条带有今天的return_date日期,另一条带有Null表示return_date。此查询会引发不匹配错误..
SELECT *
FROM loans
WHERE return_date='';
...就像这个查询...
SELECT *
FROM loans
WHERE return_date="";
答案 2 :(得分:2)
select * from loans where return_date IS NULL;
答案 3 :(得分:0)
也许你应该尝试
SELECT *
FROM loans
WHERE return_date Is Null