[access查询]用access进行两个日期之间的月(天、年)数计算-贺德才
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> Access数据库-查询/SQL语句


[access查询]用access进行两个日期之间的月(天、年)数计算

发表时间:2007/10/17 16:00:10 评论(0) 浏览(19197)  评论 | 加入收藏 | 复制
   
摘 要:日期计算
正 文:

        受人之托,帮忙设计一个培训证书管理系统,其中有一个关于证书从发证之日起24个月过期的统计,难了“access王”一阵子。经过反复试验,找到了办法。不敢独享,公布之,期望那些和我一样遇到同样问题的人少走弯路。
       我在《培训信息表》里设计有“发证日期”字段。所谓“超过24个月为过期证书”,是指从发证的那一天开始到现在(系统日期)为止,少于24个月为“有效期”,大于24个月为“过期”。基于这个思路,我以《培训信息表》为基础新建一个查询,加入相关字段,再在一个空白字段处写上--月数: DateDiff("m",[发证日期],Date())。运行这个查询,证书从发证之日起到现在有几个月了就显示出来。
       这个公式的解释是:“datediff”是个函数,用于根据某个日期进行年、月、日的计算,“m”表示你要计算的是月份,“发证日期”是原表中的字段名,“date()”表示当前日期。设计是完成了,但有个事理逻辑还应该搞清楚:电脑系统的计算是按整月进行的,不满一个月它会舍去,比如24个月零15天,系统仍会当作24个月统计,而超过15天的证书实际上已经是“过期证书”了。所以,如果想尽量精确的话,应该考虑将24个月拆算成天数(730天),即超过730天的为过期证书。而现在又没有计算天数怎么办呢?如果要计算天数也容易,把公式稍改一下就行了,变成--天数: DateDiff("d",[发证日期],Date())。这要看使用者有什么需求。如果要计算年数,可以改成--年数: DateDiff("yyyy",[发证日期],Date())。
        重要提示:设计和使用这种软件都必须保证你的系统日期、时间是正确的!我发现有很多电脑使用者不注意自己电脑的系统时间设置。这是极端错误的。简单的操作可以不在乎电脑时间的正确与否,但使用与日期、时间有关的软件时必须注意。我曾经帮人设计过一个财务管理软件,使用近一年时间都没有问题,但有一天他突然告诉我录入财务收支数据后,统计结果不正确。我让他把数据发给我一看,发现他的系统时间不对,全部变成2003年某月某日了,而他要统计的是2006年的数据,正确才怪呢?必须注意这个问题!

Access软件网交流QQ群(群号:198465573)
 
 相关文章
Access查询 交流QQ群群号:54525238 欢迎学习acc...  【宏鹏  2012/10/26】
常见问答
技术分类
相关资源
文章搜索
关于作者

贺德才

文章分类

文章存档

友情链接