Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-查询/SQL语句

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

时 间:2007-10-17 16:00:10
作 者:贺德才   ID:140  城市:襄樊
摘 要:日期计算
正 文:


        受人之托,帮忙设计一个培训证书管理系统,其中有一个关于证书从发证之日起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群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助