在一般情况下,SQL Server 会自动完成数据类型的转换,例如,可以直接将字符数据类型或表达式与DATATIME 数据类型或表达式比较当表达式中用了INTEGER、 SMALLINT或TINYINT 时,SQL Server 也可将INTEGER 数据类型或表达式转换为SMALLINT数据类型或表达式,这称为隐式转换。如果不能确定SQL Server 是否能完成隐式转换或者使用了不能隐式转换的其它数据类型,就需要使用数据类型转换函数做显式转换了。此类函数有两个:
・CAST() CAST() 函数语法如下: CAST (<expression> AS <data_ type>[ length ]) ・CONVERT() CONVERT() 函数语法如下: CONVERT (<data_ type>[ length ], <expression> [, style]) 提醒: 1、data_type为SQL Server系统定义的数据类型,用户自定义的数据类型不能在此使用。 2、length用于指定数据的长度,缺省值为30。 3、把CHAR或VARCHAR类型转换为诸如INT或SAMLLINT这样的INTEGER类型、结果必须是带正号(+)或负号(-)的数值。 4、TEXT类型到CHAR或VARCHAR类型转换最多为8000个字符,即CHAR或VARCHAR数据类型是最大长度。 5、IMAGE类型存储的数据转换到BINARY或VARBINARY类型,最多为8000个字符。 6、把整数值转换为MONEY或SMALLMONEY类型,按定义的国家的货币单位来处理,如人民币、美元、英镑等。 7、BIT类型的转换把非零值转换为1,并仍以BIT类型存储。 8、试图转换到不同长度的数据类型,会截短转换值并在转换值后显示“+”,以标识发生了这种截断。 用CONVERT() 函数的style 选项能以不同的格式显示日期和时间。style 是将DATATIME 和SMALLDATETIME 数据转换为字符串时所选用的由SQL Server 系统提供的转换样式编号,不同的样式编号有不同的输出格式。 例子: CAST([字段名] as varchar(4000)) CONVERT(varchar(4000),[字段名])
LTRIM删除起始空格后返回字符表达式。 语法 参数 是字符或二进制数据表达式。character_expression 可以是常量、变量或列。character_expression 必须是可以隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。 返回类型 注释 示例 DECLARE @string_to_trim varchar(60)SET @string_to_trim = '' Five spaces are at the beginning of this string.''SELECT ''Here is the string without the leading spaces: '' + LTRIM(@string_to_trim)GO ------------------------------------------------------------------------Here is the string without the leading spaces: Five spaces are at the beginning of this string. (1 row(s) affected) RTRIM截断所有尾随空格后返回一个字符串。 语法 参数 由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。 返回类型 注释
说明 兼容级别可能影响返回值。有关更多信息,请参见 sp_dbcmptlevel。 示例 DECLARE @string_to_trim varchar(60)SET @string_to_trim = ''Four spaces are after the period in this sentence. ''SELECT ''Here is the string without the leading spaces: '' + CHAR(13) + RTRIM(@string_to_trim)GO (1 row(s) affected)------------------------------------------------------------------------ Here is the string without the leading spaces: Four spaces are after the period in this sentence. (1 row(s) affected) 文章出处:http://www.diybl.com/course/7_databases/sql/sqlServer/20071211/91728.html |