从两个日期之间的 MS Access 表中选择?

Posted

技术标签:

【中文标题】从两个日期之间的 MS Access 表中选择?【英文标题】:Select from MS Access Table between two dates? 【发布时间】:2014-07-08 01:14:41 【问题描述】:

我有一个 MS ACCESS 表,其中包含一个用于存储日期的字符串字段(我有理由不使用 Date 类型),有没有办法从两个日期之间的表中选择行?因为我尝试的一切似乎都不起作用,它混淆了年、日和月,这是我尝试过的:

select  *  from audience where Format(auddate, "dd/MM/yyyy") between #01/06/2014# and  #01/08/2014#
select  *  from audience where Format(auddate, "dd/MM/yyyy") > #01/06/2014# and Format(auddate, "dd/MM/yyyy") > #01/08/2014#

除此之外,我得到了一些毫无意义的结果:

审核日期 25/06/2014 2012 年 9 月 18 日 2012 年 12 月 11 日 28/01/2013 08/02/2011 2011 年 13 月 10 日

提前致谢。

【问题讨论】:

是时候回顾一下将日期存储为字符的原因了。 请不要使用日月年格式,很危险,请使用年月日。 你说的都对,现在没有意义了,谢谢你的建议:) 【参考方案1】:

尝试CDate() 将您的字符串转换为日期。

select  *  from audience 
where CDate(audate) between #01/06/2014# and #01/08/2014#;

如果由于 CDate 无法重新调整您的格式而无法正常工作,您可以使用 DateSerial(year,month,day) 来构建日期。您将需要使用 mid$ 和 Cint() 来构建年、月和日参数。像这样的格式“yyyy-mm-dd”:

DateSerial(CInt(mid(audate, 1, 4)), CInt(mid(audate, 6, 2)), CInt(mid(audate, 9, 2))

希望这会有所帮助。

【讨论】:

以上是关于从两个日期之间的 MS Access 表中选择?的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 在两个日期之间进行选择?

MS Access 从两个表中选择

MS Access SQL 多个 JOIN 和 WHERE 子句

带有子查询的 MS ACCESS 查询

如何使用 MS Access 在 C# 中的两个日期之间进行搜索

ms-access:仅显示特定日期内记录的报告