现在的位置: 首页 > 综合 > 正文

Access中SQL查询的数据类型转换问题

2013年10月10日 ⁄ 综合 ⁄ 共 2405字 ⁄ 字号 评论关闭
在Access中,能否使用类似SQL  Server  2000中的数据类型转换的方法,如在SQL  Server  2000  中可以如下操作:  
faq-it.org/delphi_database/  
SELECT  CAST(Field1  AS  Numeric(10,2))  +  CAST(Field2  AS  Numeric(10,2))  FROM  My_Tbl  WHERE  Id=1  
 
其中Field1  和  Field2是varchar(10)类型,但填的是数字。  
在Access中可不可以用呢,如果可以的话,语法又是怎样的呢?  
 
谢谢!  
---------------------------------------------------------------  
 
In  Access  ,U  can  use  following  convert  fun  
Just  as:  
SELECT  CDbl(Field1)  +  CDbl(Field2)  FROM  My_Tbl  WHERE  Id=1  
类型转换函数  
             
 
每个函数都可以强制将一个表达式转换成某种特定数据类型。  
 
语法  
CBool(expression)  
 
CByte(expression)  
 
CCur(expression)  
 
CDate(expression)  
 
CDbl(expression)  
 
CDec(expression)  
 
CInt(expression)  
 
CLng(expression)  
 
CSng(expression)  
 
CStr(expression)  
 
CVar(expression)  
 
CStr(expression)  
 
必要的  expression  参数可以是任何字符串表达式或数值表达式。  
 
返回类型  
函数名称决定返回类型,如下所示:  
 
函数  返回类型  expression  参数范围    
CBool    Boolean  任何有效的字符串或数值表达式。    
CByte    Byte  0  至  255。    
CCur  Currency  -922,337,203,685,477.5808  至922,337,203,685,477.5807。    
CDate  Date  任何有效的日期表达式。    
CDbl  Double    负数从  -1.79769313486231E308  至  -4.94065645841247E-324;正数从  4.94065645841247E-324  至  1.79769313486232E308。    
CDec  Decimal  零变比数值,即无小数位数值,为    
+/-79,228,162,514,264,337,593,543,950,335。对于  28  位小数的数值,范围则为    
+/-7.9228162514264337593543950335;最小的可能非零值是  0.0000000000000000000000000001。    
CInt  Integer  -32,768  至  32,767,小数部分四舍五入。    
CLng  Long  -2,147,483,648  至  2,147,483,647,小数部分四舍五入。    
CSng  Single  负数为  -3.402823E38  至  -1.401298E-45;正数为  1.401298E-45  至  3.402823E38。    
CStr  String  依据  expression  参数返回  Cstr。    
CVar  Variant  若为数值,则范围与  Double  相同;若不为数值,则范围与  String  相同。    
 
 
 
说明  
如果传递给函数的  expression  超过转换目标数据类型的范围,将发生错误。  
 
通常,在编码时可以使用数据类型转换函数,来体现某些操作的结果应该表示为特定的数据类型,而不是缺省的数据类型。例如,当单精度、双精度或整数运算发生的情况下,使用  CCur  来强制执行货币运算。  
 
应该使用数据类型转换函数来代替  Val,以使国际版的数据转换可以从一种数据类型转换为另一种。例如,当使用  Ccur  时,不同的小数点分隔符、千分位分隔符和各种货币选项,依据系统的区域设置都会被妥善识别。  
 
当小数部分恰好为  0.5  时,Cint  和  CLng  函数会将它转换为最接近的偶数值。例如,0.5  转换为  0、1.5  转换为  2。Cint  和  CLng  函数不同于  Fix  和  Int  函数,Fix  和  Int  函数会将小数部分截断而不是四舍五入。并且  Fix  和  Int  函数总是返回与传入的数据类型相同的值。  
 
使用  IsDate  函数,可判断  date  是否可以被转换为日期或时间。Cdate  可用来识别日期文字和时间文字,以及落入可接受的日期范围内的数值。当转换一个数字成为日期时,是将整数部分转换为日期,小数部分转换为从午夜起算的时间。  
 
CDate  依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。  
 
CVDate  函数也提供对早期  Visual  Basic  版本的兼容性。CVDate  函数的语法与  CDate  函数是完全相同的,不过,CVDate  是返回一个  Variant,它的子类型是  Date,而不是实际的  Date  类型。因为现在已有真正的  Date  类型,所以  CVDate  也不再需要了。转换一个表达式成为  Date,再赋值给一个  Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的  Variant  子类型。  
 
#############注意  CDec  函数不能返回独立的数据类型,而总是返回一个  Variant,它的值已经被转换为  Decimal  子类型。 

抱歉!评论已关闭.