Sql Server函数全解(三)数据类型转换函数和文本图像函数
Sql Server函数全解(三)数据类型转换函数和文本图像函数
一:数据类型转换函数
在同时处理不同数据类型的值时,SQL Server一般会自动进行隐士类型转换。对于数据类型相近的值是有效的,比如int和float,但是对于其它数据类型,例如整型和字符类型,隐士转换就无法实现了,此时必须使用显示转换。为了实现这种显示转换,T-SQL提供了两个显示转换函数,分别是CAST和CONVERT函数。
CAST(x AS type)和CONVERT(type,x)函数将一个类型的值转换为另一个类型的值。
eg: select CAST('121231' AS DATE),CAST(100 AS CHAR(3)),CONVERT(TIME,'2012-05-01 12:11:10')
可以看到,CAST('121231' AS DATE)将字符串值转换为了相应的日期值;CAST(100 AS CHAR(3))将整数100转换为带有3个显示宽度的字符串类型,结果为字符串"100";CONVERT(TIME,'2012-05-01 12:11:10')将datetime类型的值,转换为time类型值,结果为"12:11:10.0000000"。
二:文本和图像函数
文本和图像函数用于对文本或图像输入值或字段进行操作,并提供有关该值的基本信息。T-SQL中常用的文本含函数有两个,即TEXTPTR函数和TEXTVALID函数。
1.TEXTPTR函数
TEXTPTR(column)函数用于返回varbinary格式的text、ntext或者image字段的文本指针值。查找到的文本指针值可应用于readtext,writetext和updatetext语句。其中参数column是一个数据类型为text、ntext或者image的字段列。
【例】查询authors表中name字段十六字节文本指针;
首先创建表authors, name字段为text类型,T-SQL代码如下:
create table authors(id int ,name text);
insert into authors values(1,'this is a text');
使用TEXTPTR查询authors表中name字段的十六字节文本指针
select id, TEXTPTR(name)from authors where id=1
2. TEXTVALID函数
TEXTVALID('table.column',text_ptr)函数用于检查特定文本指针是否为有效的text、ntext或image函数。table.column为指定数据表和字段,text_ptr为要检查的文本指针。
【例】检查是否存在用于authors表中decription字段中的各个值的有效文本指针。
select id,'this is a text' = TEXTVALID(('authors.name'),TEXTPTR(name)) from authors;
第一个1为id的值,第二个1表示查询的值存在.
转自