【Sqlserver系列】CAST和CONVERT

1   概述

本篇文章主要讲解SqlServer中类型转换涉及的两个函数:CAST和CONVERT。

2   具体内容

2.1  CAST

(1)作用:将一种数据类型的表达式转换为另一种数据类型的表达式。

(2)定义:

1 CAST ( expression AS data_type)

Parameters:

expression:任何可转换为 data_type 的有效表达式;

data_type:系统提供的目标数据类型。 该类型必须为基元(标量)类型。 使用的 data_type 取决于查询空间。 如果使用EntityCommand 执行查询,则数据类型为概念模型中定义的类型。

Return Value::

返回与 data_type 相同的值。

(3)例子

 1 SELECT CAST(‘2017‘ AS INT)  --2017
 2
 3 SELECT CAST(2017 AS INT)   --2017
 4
 5 SELECT CAST(2017.3 AS INT)   --2017
 6
 7 SELECT CAST(‘2017.3‘ AS INT)--消息 245,级别 16,状态 1,第 1 行,在将 varchar 值 ‘2017.3‘ 转换成数据类型 int 时失败。
 8
 9 SELECT CAST(‘2017.3‘ AS decimal) --2017
10
11 SELECT CAST(‘2017.3‘ AS decimal(8,2))  --2017.30

2.2  CONVERT

(1)作用:将一种数据类型的表达式转换为另一种数据类型的表达式。

(2)定义:

1 CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

Parameters:

expression:任何有效的表达式;

data_type:目标数据类型。这包括 xml、bigint 和 sql_variant。不能使用别名数据类型;

length:指定目标数据类型长度的可选整数。默认值为 30;

style:指定 CONVERT 函数如何转换 expression 的整数表达式。如果样式为 NULL,则返回 NULL。该范围是由 data_type 确定的。有关详细信息,请参阅“备注”部分;

Return Value:

返回转换为 data_type 的 expression。

(3)例子

1 SELECT CONVERT(INT,‘2017‘)   --2017
2
3 SELECT CONVERT(INT,2017.3)   --2017
4
5 SELECT CONVERT(INT,‘2017.3‘)   --消息 245,级别 16,状态 1,第 1 行,在将 varchar 值 ‘2017.3‘ 转换成数据类型 int 时失败。
6
7 SELECT CONVERT(decimal,‘2017.3‘)  --2017
8
9 SELECT CONVERT(decimal(8,2),‘2017.3‘) --2017.30

2.3  CAST和CONVERT比较

(1)cast一般更容易使用,convert的优点是可以格式化日期和数值;

(2)convert一般用于日期和时间值,小数之间转换,cast一般用于小数转数值和字符型;

(3)converk显示转换,cast是强制转换;            
(4)例子

 1 select CONVERT(varchar, getdate(), 120 )  --2017-08-13 03:56:14
 2
 3 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),‘-‘,‘‘),‘ ‘,‘‘),‘:‘,‘‘) --20170813035627
 4
 5 select CONVERT(varchar(12) , getdate(), 111 ) --2017/08/13
 6
 7 select CONVERT(varchar(12) , getdate(), 112 )  --20170813
 8
 9 select CONVERT(varchar(12) , getdate(), 102 )  --2017.08.13
10
11 select CONVERT(varchar(12) , getdate(), 101 )  --08/13/2017
12
13 select CONVERT(varchar(12) , getdate(), 103 )  --13/08/2017
14
15 select CONVERT(varchar(12) , getdate(), 104 )  --13.08.2017
16
17 select CONVERT(varchar(12) , getdate(), 105 )  --13-08-2017
18
19 select CONVERT(varchar(12) , getdate(), 106 )  --13 08 2017
20
21 select CONVERT(varchar(12) , getdate(), 107 )  --08 13, 2017
22
23 select CONVERT(varchar(12) , getdate(), 108 )  --03:57:39
24
25 select CONVERT(varchar(12) , getdate(), 109 )  --08 13 2017
26
27 select CONVERT(varchar(12) , getdate(), 110 )  --08-13-2017
28
29 select CONVERT(varchar(12) , getdate(), 113 )  --13 08 2017 0
30
31 select CONVERT(varchar(12) , getdate(), 114 )  --03:58:08:200
32
33 select getdate()  --2017-08-13 03:58:48.660
34
35 select convert(char(8),getdate(),112)  --20170813
36
37 select convert(char(8),getdate(),108)  --03:58:48
38
39 select convert(char(8),getdate(),112)  --20170813

参考表:

3   参考文献

【01】https://msdn.microsoft.com/zh-cn/library/bb399172(v=vs.110).aspx

【02】https://technet.microsoft.com/zh-cn/library/ms187928(v=sql.105).aspx

4   版权

  • 感谢您的阅读,若有不足之处,欢迎指教,共同学习、共同进步。
  • 博主网址:http://www.cnblogs.com/wangjiming/。
  • 极少部分文章利用读书、参考、引用、抄袭、复制和粘贴等多种方式整合而成的,大部分为原创。
  • 如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出,邮箱:[email protected]。
  • 可以转载该博客,但必须著名博客来源。
时间: 2024-12-17 14:21:38

【Sqlserver系列】CAST和CONVERT的相关文章

sqlserver中cast,convert,datepart,left,right这三个函数的使用讲解

这几个函数其实网上资料很多,但是为了方便自己的记忆,我还是决定还是写一下,都说好记性不如烂笔头,所以还是多写一下. cast()函数作用主要是:把一种类型转化成另外一种类型如把字符串类型转换成时间类型:SELECT CAST( '2011-10-2' AS datetime),再或者把数值型转换成字符串类型:SELECT CAST( 1 AS BIGINT) convert()函数主要是可以用不同的格式显示日期/时间数据:CONVERT(data_type(length),data_to_be_

sqlserver CAST 和 CONVERT函数

1.sqlserver CAST 和 CONVERT函数 将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相似的功能. 语法 使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 参数 expression 是任何有效的 Microsoft SQL Server" 表达式.有关更多信息,请参见表达式. da

转:sql cast和convert用法详解

原文:http://www.2cto.com/database/201310/250880.html sql cast和convert用法详解 总结: 以下这条仅仅适用于mysql SELECT {fn CONCAT(CONVERT(user_id,CHAR),USER_NAME)} AS str FROM t_sys_user 以下这条仅仅适用于sqlserver2008 SELECT {fn CONCAT(CONVERT(CHAR,user_id),USER_NAME)} AS str FR

SQL Server 2000 函数使用---CAST 和 CONVERT

本文来自:http://www.cnblogs.com/xh831213/category/47654.html 将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相似的功能. 语法 使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 参数 expression 是任何有效的 Microsoft® SQL

sql cast,convert,QUOTENAME,exec 函数学习记录

语法 使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, style]) 参数 expression 是任何有效的 Microsoft SQL Server" 表达式.有关更多信息,请参见表达式. data_type 目标系统所提供的数据类型,包括 bigint 和 sql_variant.不能使用用户定义的数据类型.有关可用的数据类型的更多信息,请参见

SQL Server 中CAST和Convert的区别

在 SQL Server 中Cast和Convert都是将表达式由一种数据类型转换为另一种数据类型.由于SQL Server提供两种功能,因此应该选择哪种功能或应该在哪种情况下使用该功能就很容易让人困惑了.CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性.CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些.不过,当小数转化为数值,并保留原始表达式中的小数数值时,仍然需

【SqlServer系列】子查询

1   概述 1.1  已发布[SqlServer系列]文章 [SqlServer系列]SQLSERVER安装教程 [SqlServer系列]数据库三大范式 [SqlServer系列]表单查询 [SqlServer系列]表连接 1.2  本篇文章内容概要 子查询和表连接,主要是针对两张及以上表之间关联关系进行查询.子查询,按是否独立划分,分为独立子查询和相关子查询:按内部查询返回是否为单值,分为单值子查询(注意:应理解单值子查询和标量子查询关系)和多值子查询:如下表格内容为按子查询是否独立来划分

SQL SERVER中强制类型转换cast和convert的区别

在SQL SERVER中,cast和convert函数都可用于类型转换,其功能是相同的, 只是语法不同. cast一般更容易使用,convert的优点是可以格式化日期和数值. 1 select CAST('123' as int) -- 123 2 select CONVERT(int, '123') -- 123 3 4 select CAST(123.4 as int) -- 123 5 select CONVERT(int, 123.4) -- 123 6 7 select CAST('1

SQL 语句转换格式函数Cast、Convert

SQL 语句转换格式函数Cast.Convert CAST和CONVERT都经常被使用.特别提取出来作为一篇文章,方便查找. CAST.CONVERT都可以执行数据类型转换.在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能. 既然CONVERT包括了CAST的所有功能,而且CONVERT还能进行日期转换,那么为什么需要使用CAST呢?实际上,这是为了ANSI/ISO兼容.CAST是ANSI兼容的,而CONVERT则不是. 语法: CA