首页 > 解决方案 > 如何在 MS Access 中将 LIKE 与具有 NULL 值的日期字段一起使用

问题描述

我有一个允许部分日期搜索的应用程序。它没有指定日期部分是什么。如果有人输入“20”,它可能是一年中的一部分或一个月中的某一天。

该应用程序使用 Access 数据库,其中某些日期字段具有 NULL 值。

我正在尝试使用 [日期字段] LIKE {日期条件}编写查询。

我开始做的是使用 cstr(datefield) 将日期字段转换为字符串,但 NULL 值给出了 #error 值。

SELECT * ,cstr(datefield) AS strdate FROM table1 

日期错误

Access 有 ISNULL 函数,但它只接受一个返回 true 或 false 的参数,这与 SQL Server 中的 ISNULL 函数相反,它接受两个参数,如果第一个参数为 null,则第二个是要使用的值。

我想我可以在最后添加“AND datefield IS NOT NULL”,但我想问一下是否有其他可能的解决方案。

然后,当我最终到达查询本身时,它没有返回任何结果。

SELECT * ,cstr(datefield) AS strdate 
FROM table1 
WHERE scan_date IS NOT NULL
AND cstr(datefield) LIKE '%20%'

我将如何对访问中的日期字段进行 LIKE 查询?

标签: sqlms-access

解决方案


您可以使用以下功能Nz()

SELECT * , Nz(datefield) AS strdate 
FROM table
WHERE Nz(datefield) LIKE '*20*'

但是您应该知道在 Access 中使用的通配符不是%but *,这就是您没有得到任何结果的原因。


推荐阅读