从两个日期之间的 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 SQL 多个 JOIN 和 WHERE 子句