sql数据类型转换

上传人:m**** 文档编号:458218396 上传时间:2022-09-17 格式:DOCX 页数:4 大小:9.98KB
返回 下载 相关 举报
sql数据类型转换_第1页
第1页 / 共4页
sql数据类型转换_第2页
第2页 / 共4页
sql数据类型转换_第3页
第3页 / 共4页
sql数据类型转换_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《sql数据类型转换》由会员分享,可在线阅读,更多相关《sql数据类型转换(4页珍藏版)》请在金锄头文库上搜索。

1、sql数据类型转换(cast() and convent()函数)sql数据类型转换(cast() and convent()函数)当Microsoft SQL Server 2000不自动执行不同数据类型的表达式转换时, 可使用转换函数CAST和CONVERT进行转换。这些转换函数还可用来获得各种 特殊的数据格式。这两个转换函数都可用于选择列表、WHERE子句和允许使用表 达式的任何地方。如果希望Transact-SQL程序代码遵从SQL-92标准,请使用CAST而不要使用 CONVERT。如果要利用CONVERT中的样式功能,请使用CONVERT而不要使用 CAST。使用CAST或CONV

2、ERT时,需要两条信息:要转换的表达式(例如,销售报告要求销售数据从货币型数据转换为字符 型数据)。要将所给表达式转换到的数据类型,例如,varchar或SQL Server提供 的任何其它数据类型。除非将被转换的值存储起来,否则转换仅在CAST或CONVERT函数的作用期内 有效。在下面的示例中,第一个SELECT语句中使用CAST,第二个SELECT语句中使 用CONVERT,将title列转换为char(50)列,以使结果更可读:USE pubsSELECT CAST(title AS char(50), ytd_salesFROM titlesWHERE type = trad_coo

3、k或USE pubsSELECT CONVERT(char(50), title), ytd_salesFROM titlesWHERE type = trad_cook卜面是结果集:(对任何一个查询)ytd_salesOnions, Leeks, and Garlic: Cooking Secrets of the 375Fifty Years in Buckingham Palace Kitchens 15096Sushi, Anyone? 4095 (3 row(s) affected)在下面的示例中,int类型的ytd_sales列转换为char(20)列,从而可以对该列使用LIKE谓

4、词:USE pubsSELECT title, ytd_salesFROM titlesWHERE CAST(ytd_sales AS char(20) LIKE 15%AND type = trad_cook下面是结果集:Titleytd_salesFifty Years in Buckingham Palace Kitchens15096(1 row(s) affected)SQL Server自动处理某些数据类型的转换。例如,如果比较char和datetime 表达式、smallint和int表达式、或不同长度的char表达式,SQL Server可 将它们自动转换。这种转换称为隐性转换

5、。对这些转换不必使用CAST函数。但 是,在下列情况下使用CAST都是可以接受的:两个表达式的数据类型完全相同。.两个表达式可隐性转换。必须显式转换数据类型。如果试图进行不可能的转换(例如,将含有字母的char表达式转换为int类 型),SQL Server将显示一条错误信息。如果转换时没有指定数据类型的长度,则SQL Server自动提供长度为30。转换为datetime或smalldatetime时,SQL Server将拒绝所有无法识别为日 期的值(包括1753年1月1日以前的日期)。当日期处于适当的范围内(1900 年1月1日到2079年6月6日)时,可将datetime值转换为 sm

6、alldatetime。时间值被四舍五入为最接近的分钟数。转换为bit将把任何非零值都更改为1。转换为money或smallmoney时,整数后将加上货币单位。例如,整数值4被 转换为货币时相当于4美元(对于默认语言us_english)。浮点值的小数部分 将四舍五入为四位小数以用于money值。将要转换为整数数据类型的char或 varchar数据类型的表达式中,只能包含数字和可选的加号或减号(+或-)。 将忽略前导空格。要转换为money的char或varchar数据类型的表达式,还 可包含可选的小数点和前导美元符号($)。要转换为float或real数据类型的char或varchar类型

7、表达式还可选择 性地包含指数符号(e或E,后面有可选的+或-符号,再后面是数字)。将字符表达式转换为其它大小的数据类型时,对于新的数据类型过长的值将被截 断,SQL Server将在osql实用工具和SQL查询分析器中显示星号(*)。若数 字表达式对于新的数据类型太长而无法显示,值将截断。下面是字符截断的示例:USE pubsSELECT SUBSTRING(title, 1, 25) AS Title, CONVERT(char(2), ytd_sales) FROM titlesWHERE type = trad_cook下面是结果集:TitleOnions, Leeks, and Gar

8、lic * Fifty Years in Buckingham * Sushi, Anyone? *(3 row(s) affected)在进行数据类型转换时,若目标数据类型的小数位数小于源数据类型的小数位 数,则该值将被截断。例如,CAST(10.3496 AS money)的结果是$10.35。可将text数据显式转换为char或varchar,将image显式转换为binary 或varbinary。由于这些数据类型被限制为8,000个字符,所以转换也限制为 character和binary数据类型的最大长度,即8,000个字符。可将ntext数 据显式转换为nchar或nvarchar

9、,但最大长度为4,000个字符。如果没有指 定长度,被转换的值的默认长度为30个字符。不支持隐式转换。style参数将datetime数据转换为char或varchar数据时,CONVERT的style参数提 供了各种日期显示格式。为style参数提供的数值确定了 datetime数据的显 示方式。年份可以显示为两位或四位数。默认情况下,SQL Server将年份显示 为两位数。若要显示包括世纪的四位数年份(yyyy)(即使年份数据是使用两位 数的年份格式存储的),请给style值加100以获得四位数年份。以下示例显示用style参数进行转换:SELECT CONVERT(char(12), GETDATE(), 3)此语句把当前日期转换为样式3,dd/mm/yy。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号