AO中关于日期型字段应注意的几个事项

作 者:
陈元 

作者简介:
陈元,徐州市泉山区审计局

原文出处:
江苏审计

内容提要:


期刊代号:V3
分类名称:审计文摘
复印期号:2009 年 09 期

关 键 词:

字号:

      运用AO辅助审计的过程中,我们经常会遇到“日期型”或“日期时间型”字段,有很多查询必须要利用日期时间才能完成,所以我们必须要掌握好日期时间型字段的一些用法及注意事项,才能更好地运用AO进行审计工作。

      一、关于日期类型的转换。将数据导入AO时,AO系统提供的日期时间类型格式有两种,即Datetime和Smalldatetime,AO默认的日期时间类型为Smalldatetime。我们在AO中运用SQL语句查询涉及日期类型时,如果直接用[日期字段]与具体日期进行比较时,系统会提示“数据类型不匹配”,查询失败。这就需要用CDATE(日期表达式)函数,将一个表达式转换成日期类型,然后再与具体的日期比较就可以了。示例:select*from[源_数据表]whereCDATE([交房时间])<='2008-09-15';

      二、关于计算机系统自身日期格式。计算机系统自身的日期格式直接影响AO软件中日期时间类型的显示方式,而AO中日期时间类型的显示方式又直接影响到SQL语句的书写,所以我们在审计工作中会遇到这样的情况:一台计算机中导出AO的电子数据包,导入到另一台电脑中,不做任何修改,但是完全相同的涉及日期时间的SQL语句在两台计算机中查询的结果有出入,这就是因为这两台计算机系统本身的日期格式不同造成的。示例:如果A计算机系统的日期格式为yyyy-mm-dd,则在A计算机的AO软件中显示的日期格式就是yyyy-mm-dd;如果B计算机系统短日期格式为yyyy-m-d,则在B计算机的AO软件中显示的日期格式就是yyyy-m-d;如果将A计算机中导出的AO电子数据包导入到B计算机中,同一个SQL语句比如select*from[源 数据表]whereCDATE([交房时间])<='2008-09-15',在B中查出的结果就与在A中查出的不同。出现这种情况时,我们就必须更改B计算机系统自身的日期格式(更改方法为:在控制面板-日期、时间、语言和区域设置-更改数字、日期和时间格式-自定义-日期-短期日期格式中修改),使其和A计算机的日期格式一致,这样查询的结果才会一致。

      三、关于半角符号“-”。Excel表中经常使用“1-1、1-11、1-21”表示形式的字段,即利用半角符号“-”将两边分开,表示某一项下的明细项目。在Excel表中将此字段设置为文本格式,然后将Excel表导入到AO中,在AO中执行涉及该字段的查询语句。如果选择“执行SQ1到排序表”和“执行SQL到分组表”时,该格式字段显示没有异常;如果选择“执行SQL到自由表”,则该格式字段的显示可能会出现异常,有可能会显示出日期时间类型,比如“1-1”,会显示出“2008-1-1”。要解决这个显示问题,就必须在将源Excel表导入AO前,对Excel表中的该字段进行简单处理,首先将该字段设置为文本格式,然后复制该字段,再选择性粘贴其数值,这样再将处理过的Excel表导入AO就可以了。

      审计人员在将源数据表导入AO时,最好在导入前将源数据表中的数据格式设置成最合适的类型,导入AO的过程中,再根据AO提供的可选择数据类型进行选择(比如数字选择numeric(p,q)或int或bigint、文本选择nvarchar(n)、日期选择smalldatetime等),这样导入到AO中的数据出现异常的概率就比较小。

相关文章: