Sql 未包含在MS访问日期比较中的年份

Sql 未包含在MS访问日期比较中的年份,sql,ms-access,Sql,Ms Access,我在这里查看了一些帖子,但似乎没有一个能解决我的确切问题。我比较了两组日期,但似乎不包括处理日期 所有日期的格式都相同,但2018年的任何日期都不会显示为小于今天的日期,只有2019年的数据 SELECT DISTINCTROW Active.UTID, Active.[UT Name], Active.Status, Active.[UT Owner SID], Active.[Backup Owner SID], Active.[Business Champion], Active.[Rec

我在这里查看了一些帖子,但似乎没有一个能解决我的确切问题。我比较了两组日期,但似乎不包括处理日期

所有日期的格式都相同,但2018年的任何日期都不会显示为小于今天的日期,只有2019年的数据

SELECT DISTINCTROW Active.UTID, Active.[UT Name], Active.Status, Active.[UT Owner SID], Active.[Backup Owner SID], Active.[Business Champion], Active.[Reclassification of Risk], PastDueDate.PastDue 
FROM Active, PastDueDate
WHERE (((Active.[Reclassification of Risk])<[PastDueDate].[PastDue]));
选择DISTINCTROW Active.UTID,Active.[UT Name],Active.Status,Active.[UT Owner SID],Active.[Backup Owner SID],Active.[Business Champion],Active.[rescription of Risk],passduedate.passdue
从活动,过去的日期

其中(((有效。[风险重新分类])将日期值与日期值进行比较:

选择DISTINCTROW
Active.UTID,
活动。[UT名称],
活跃状态,
活动。[UT所有者SID],
活动。[备份所有者SID],
活跃的[商业冠军],
格式([现行][风险重新分类],“mm/dd/yyyy”)为[风险重新分类],
PastDueDate.PastDue
从…起
活跃的,
过去日期
哪里
[现行][风险重新分类]<[到期日][到期日];
如果“日期”值为文本,则转换为日期:

WHERE 
    DateValue([Active].[Reclassification of Risk]) < DateValue([PastDueDate].[PastDue]);

相关字段是否为数据类型日期?将日期存储为日期/时间而不是文本。当我将“数据类型”更改为日期/时间时,会出现错误“Microsoft Access无法更改数据类型。没有足够的磁盘空间或内存。”因此,我不确定问题是什么。问题是您将日期存储为文本的格式(可能是)不可比较,现在无法更改为日期/时间。因此,最好的解决方案是在表中创建另一个日期/时间列,在其中存储每个日期(手动或通过代码作为更新),然后删除旧列。我将其更改为此列,但仍不起作用选择DISTINCTROW Active.UTID,Active。[UT Name],活动。状态,活动。[UT所有者SID],活动。[备份所有者SID],活动。[Business Champion],格式([Active].[风险重新分类],“mm/dd/yyyy”)为[风险重新分类],PastDueDate.PastDue自活动,PastDueDate其中((格式([Active].[风险重新分类],“mm/dd/YYYYY”))我这样做了,但仍然没有提取2018年的数据。只要您将日期存储为文本,任何东西都不会起作用。获取类型不匹配错误时,“DateValue([Active].[Rescription of Risk])IsDate
检查有效条目。@Joshudson:
[Active]中的一些空/无日期。”。[风险重新分类]
[PastDueDate].[PastDue]
DateValue(“NotADate”)
将失败,因为它需要一个日期字符串作为参数。
Select * From YourTable Where Not IsDate([DateField]);