微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MS Access 不过滤短日期格式的计算字段

如何解决MS Access 不过滤短日期格式的计算字段

在我的数据库中,我有一个具有以下计算的字段:

AD logon date: IIf([lastlogonDate]>[LLTConverted],[lastlogonDate],[LLTConverted])

我使用以下标准对其进行过滤:

<Date()-60

但是,当我运行查询时,它会显示过去 60 天内的日期。

在源文件中,lastlogonDate 和 LLTConverted 设置为 Short Date 格式。 我尝试手动(通过属性)将 AD 登录日期字段的格式设置为短日期。我还尝试使用以下代码

AD logon date: Format(IIf([lastlogonDate]>[LLTConverted],[LLTConverted]),"dd/mm/yyyy")

此外,在“属性”表中,我将“数据类型”设置为“带时间的日期”。他们都没有工作。

我可以使用其他方法吗?

编辑:

过滤前的数据:

08/01/2021
30/09/2020
24/06/2020
17/06/2020
20/05/2020
17/06/2020
28/02/2020
07/01/2021
10/09/2020
13/11/2019
07/01/2021
01/06/2020
21/05/2020
25/05/2020
08/01/2021
07/01/2021
07/08/2020
18/02/2020
28/02/2020
25/06/2020
07/10/2020
01/04/2019
07/02/2020
28/11/2019
28/10/2020
18/02/2020
07/10/2020

过滤后:

08/01/2021
07/01/2021
10/09/2020
07/01/2021
01/06/2020
08/01/2021
07/01/2021
07/08/2020
07/10/2020
01/04/2019
07/02/2020
07/10/2020

解决方法

你把事情搞混了。 DateTime 值没有格式,只有一个值。

因此,如果字段 [lastLogonDate] 和 [LLTConverted] 为 true DateTime,则使用 Date()-60 进行过滤不会失败。

如果是,则您的字段很可能是Short Text,并且必须具有像 yyyy-mm-dd 这样的正确格式,并且必须在比较之前进行转换:

AD logon date: DateValue(IIf(DateValue([lastLogonDate]) > DateValue([LLTConverted]),[lastLogonDate],[LLTConverted]))
,

似乎还有另一种解决方案:如果我在原始 Excel 表中使用 INT 函数,那么它会将值从日期 + 时间转换为日期。在Access中,那么我必须使用

IIf([lastLogonDate]>[LLTConverted],[LLTConverted])

代替

DateValue(IIf(DateValue([lastLogonDate]) > DateValue([LLTConverted]),[LLTConverted]))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。