以下是引用bccn201203在2012-11-28 12:33:50的发言:
字段是字符型,还是日期型,不是主要的,关键是表结构设置是否合理。
数据录入是否规范,学制满一年的概念是什么,是否必须是12个月,学制才是一年,这个是主要的。
示例中
RXRQ:20050301
BYRQ:20080110
这个期间日期不满36个月,学制如何计算。
我认为楼主的数据录入不规范,造成了计算结果的错误。
哦,不是的
我贴子上写的只是一个例子罢了(表述不是太正确哈)
实际的数据是入学日期20050301,毕业是20080110,这样学制就是3年,所以只要按年减就可以了(不是按月计算,教育主管部门就是这样规定的,就像我们大学入学是9月份,毕业是7月份,不是整整的年)
使用这个allt(str(val(left(byrq,4))-val(left(rxrq,4))))中的left 应该更为准确些,这样就是年-年
而不val(substr(byrq,4,1))-val(substr(rxrq,4,1)),这个如果是入学日期是20080301,而毕业是20120110就出现错误了