如何构建一个查询以获取在数据类型为date的访问中具有空白字段的行?

时间:2011-08-05 19:08:26

标签: ms-access vb6

我在vb6中构建一个程序,它要求我在一个表中获取具有return_date字段的行,该字段显然具有日期/时间数据类型,并且它是空白的。

所以在我的系统中,我想构建一个查询来获取未返回的书籍。即return_date字段为空。

SELECT * 
FROM loans 
WHERE return_date = ""

我尝试了以上但是它说数据类型不匹配...错误......!

有任何建议......?

4 个答案:

答案 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