我有一个MS-Access数据库表(带有学校的候选数据),有几百条记录,候选人的出生日期保存为文本字符串,STRICTLY为“mm / dd / yyyy”格式。
现在我想要一个查询来检索值,同时将文本字符串值转换为Date类型,以便可以对它进行排序(在desc或asc的日期顺序,如果需要),以找出查询结果中最老的候选者。
我完全绝望地发现,字符串“01/11/2003”被转换为“2003年11月1日”(应该是2003年1月11日),但字符串“11/15/2002”是转换为“2002年11月15日”。
在此过程中,我尝试了以下策略,所有这些策略都产生了相同的结果:
cdate([dob])
其中dob是包含出生日期为文本字符串的字段名称DateValue([dob])
其中dob是包含出生日期为文本字符串的字段名称Format([dob],"mm/dd/yyyy")
其中dob是包含出生日期为文本字符串的字段名称使用DateSerial:
TrueDoB: DateSerial(Mid([dob], 7, 4 ), Mid([dob], 1, 2), Mid([dob], 4, 2))
此代码段应该教您将日期存储为日期,而不是文本。