sql - 如何在 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 查询?
解决方案
您可以使用以下功能Nz()
:
SELECT * , Nz(datefield) AS strdate
FROM table
WHERE Nz(datefield) LIKE '*20*'
但是您应该知道在 Access 中使用的通配符不是%
but *
,这就是您没有得到任何结果的原因。
推荐阅读
- azure-ad-b2c - Azure AD B2C:自定义策略 - 登录不起作用
- istio - 一个虚拟服务能否将请求分散到多个服务
- php - Swift、php 和 unicode 字符
- php - 如何在 Laravel 包 SimpleSoftwareIO/simple-qrcode 中插入一些 QRCode 格式 PNG 的文本?
- jenkins - 将(相同)参数传递给 Jenkins 管道中的多个构建作业
- windows - 对配置了带有 ARR 的 url-rewrite 的站点的 IIS 错误请求
- neo4j - 如何从 Cypher 中的 randomWalk 调用中获取具有关系的路径?
- android - 我们可以在 BuildConfig 中有非公共常量吗?
- elasticsearch - 如何在无痛弹性搜索中创建字典对象并向其添加数据
- java - org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“bookDaoImpl”的bean时出错