A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 高林 中级黑马   /  2014-3-19 16:14  /  1139 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 高林 于 2014-3-19 21:20 编辑

cast 和convert都是类型转换吗?有啥区别    百度了半天没找着  求大神解答

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

3 个回复

倒序浏览
c#类型转换可以分为两大类:一类是同一类型转换(Cast),另一类是不同类型转换(Convert)。
   同一类型转换(Cast)可分为两种:
      (1)隐式转换:如果当目标类型一定能满足源类型转换过去后的要求的话就是隐式转换。
      (2)显示转换(强制转换):如果当目标类型不一定能满足源类型转换过去后的要求的话就需要显示转换(程序员自已负责)。

Cast和convert两大类型转换的区别:
        Cast:同一类型的数据的转换,只是大小范围不同之间同一类型之间的转换(比如:byte类型和int类型之间的转换)
        (1) 小范围转换为大范围转换:隐式转换(同一类型的数据,:小→大)
        (2)大范围转换为小范围转换:强制转换(同一类型的数据:大→小)
        Convent:不同类型的数据的转换,不可以进行强制转换,只能用convert(比如:int类型和string类型之间的转换)

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
  1. CAST 和 CONVERT
  2. 将某种数据类型的表达式显式转换为另一种数据类型。CAST 和 CONVERT 提供相似的功能。

  3. 语法
  4. 使用 CAST:

  5. CAST ( expression AS data_type )

  6. 使用 CONVERT:

  7. CONVERT (data_type[(length)], expression [, style])

  8. 参数
  9. expression

  10. 是任何有效的 Microsoft® SQL Server™ 表达式。有关更多信息,请参见表达式。

  11. data_type

  12. 目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。有关可用的数据类型的更多信息,请参见数据类型。

  13. length

  14. nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
复制代码

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
  CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些。不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需要使用CAST。因此,我建议首先使用CAST,如果遇到必须使用CONVERT的情况时再使用CONVERT。  CAST和CONVERT还能联合使用,达到特殊的效果。比如,在current date下生成char变量一般使用以下方法:  SELECT CONVERT(CHAR(10), CURRENT_TIMESTAMP, 102)  (102表明使用了ANSI日期模式,即yy.mm.dd型)  然而,如果你希望将这个变量明确生成为datetime或smalldatetime变量,以此在特定的数据库栏中兼容,那么你可以使用以下语句:  SELECT CAST(CONVERT(CHAR(10),CURRENT_TIMESTAMP,102) AS DATETIME  返回值将是 yy.mm.dd 00:00:00(如12:00AM作为时间戳;

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马