【Sqlserver系列】CAST和CONVERT
1 概述
本篇文章主要讲解SqlServer中类型转换涉及的两个函数:CAST和CONVERT。
2 具体内容
2.1 CAST
(1)作用:将一种数据类型的表达式转换为另一种数据类型的表达式。
(2)定义:
CAST ( expression AS data_type)
Parameters:
expression:任何可转换为 data_type 的有效表达式;
data_type:系统提供的目标数据类型。 该类型必须为基元(标量)类型。 使用的 data_type 取决于查询空间。 如果使用EntityCommand 执行查询,则数据类型为概念模型中定义的类型。
Return Value::
返回与 data_type 相同的值。
(3)例子
SELECT CAST('' AS INT) --
SELECT CAST(2017 AS INT) --
SELECT CAST(2017.3 AS INT) --
SELECT CAST('2017.3' AS INT)--消息 245,级别 16,状态 1,第 1 行,在将 varchar 值 '2017.3' 转换成数据类型 int 时失败。
SELECT CAST('2017.3' AS decimal) --
SELECT CAST('2017.3' AS decimal(8,2)) --2017.30
2.2 CONVERT
(1)作用:将一种数据类型的表达式转换为另一种数据类型的表达式。
(2)定义:
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)例子
SELECT CONVERT(INT,'') -- SELECT CONVERT(INT,2017.3) -- SELECT CONVERT(INT,'2017.3') --消息 245,级别 16,状态 1,第 1 行,在将 varchar 值 '2017.3' 转换成数据类型 int 时失败。 SELECT CONVERT(decimal,'2017.3') -- SELECT CONVERT(decimal(8,2),'2017.3') --2017.30
2.3 CAST和CONVERT比较
(1)cast一般更容易使用,convert的优点是可以格式化日期和数值;
(2)convert一般用于日期和时间值,小数之间转换,cast一般用于小数转数值和字符型;
(3)converk显示转换,cast是强制转换;
(4)例子
select CONVERT(varchar, getdate(), 120 ) --2017-08-13 03:56:14 select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') -- select CONVERT(varchar(12) , getdate(), 111 ) --2017/08/13 select CONVERT(varchar(12) , getdate(), 112 ) -- select CONVERT(varchar(12) , getdate(), 102 ) --2017.08.13 select CONVERT(varchar(12) , getdate(), 101 ) --08/13/2017 select CONVERT(varchar(12) , getdate(), 103 ) --13/08/2017 select CONVERT(varchar(12) , getdate(), 104 ) --13.08.2017 select CONVERT(varchar(12) , getdate(), 105 ) --13-08-2017 select CONVERT(varchar(12) , getdate(), 106 ) --13 08 2017 select CONVERT(varchar(12) , getdate(), 107 ) --08 13, 2017 select CONVERT(varchar(12) , getdate(), 108 ) --03:57:39 select CONVERT(varchar(12) , getdate(), 109 ) --08 13 2017 select CONVERT(varchar(12) , getdate(), 110 ) --08-13-2017 select CONVERT(varchar(12) , getdate(), 113 ) --13 08 2017 0 select CONVERT(varchar(12) , getdate(), 114 ) --03:58:08:200 select getdate() --2017-08-13 03:58:48.660 select convert(char(8),getdate(),112) -- select convert(char(8),getdate(),108) --03:58:48 select convert(char(8),getdate(),112) --
参考表:

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/。
- 极少部分文章利用读书、参考、引用、抄袭、复制和粘贴等多种方式整合而成的,大部分为原创。
- 如您喜欢,麻烦推荐一下;如您有新想法,欢迎提出,邮箱:2016177728@qq.com。
- 可以转载该博客,但必须著名博客来源。
【Sqlserver系列】CAST和CONVERT的更多相关文章
- SqlServer基础:类型转换Cast和Convert
在SqlServer要对不同类型的数据进行运算时,需要将其转换为相同类型之后再做操作,而SqlServer中有两个函数可以进行数据转换,即:Cast和Convert 1.Cast CAST(expre ...
- SQL SERVER CAST 和 CONVERT 函数
遇到CAST 函数转化数字不一致情况, select CAST('0000000011237590798' AS money) / 100 AS Amount--output : 112375907. ...
- CAST和CONVERT差别与联系
CAST和CONVERT:都是将一种数据类型转换成为另一种数据类型. CAST: CAST ( expression AS data_type [ ( length ) ] ) EG: )) ) as ...
- SQL之 CAST 和 CONVERT
原文来自于: http://bbs.csdn.net/topics/330251394 CAST 和 CONVERT将某种数据类型的表达式显式转换为另一种数据类型.CAST 和 CONVERT 提供相 ...
- SQL 语句转换格式函数Cast、Convert
CAST和CONVERT都经常被使用.特别提取出来作为一篇文章,方便查找. CAST.CONVERT都可以执行数据类型转换.在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日 ...
- MySQL 字符串 转 int/double CAST与CONVERT 函数的用法
http://hongmin118.iteye.com/blog/2029728 转的 MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值.两者具体的语 ...
- SQL 语句转换格式函数Cast、Convert 区别
SQL 语句转换格式函数Cast.Convert CAST和CONVERT都经常被使用.特别提取出来作为一篇文章,方便查找. CAST.CONVERT都可以执行数据类型转换.在大部分情况下,两者执行同 ...
- SQL Server 基础:Cast和Convert的区别
CAST 和 CONVERT 都可以将某种数据类型的表达式显式转换为另一种数据类型. 语法: CAST ( expression AS data_type ) CONVERT (data_type[( ...
- MySQL CAST与CONVERT 函数的用法
MySQL CAST与CONVERT 函数的用法 产生另一个类型的值 MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值. 两者具体的语法如下:1 CAS ...
随机推荐
- TFS在项目中Devops落地进程(上)
经过近2年折腾,基于TFS的Devops主线工程大体落地完毕.在此大体回忆下中间的各种历程. 开始之前简单说下什么是TFS(Team Foundation Server). TFS是微软推出的一款AL ...
- .Net Core2.0秒杀CMS部署到Centos7.3遇到的坑,酸爽呀
一.Centos7.3的安装 打开VirtualBox,点击新建,如下图所示: 点击“下一步”,弹出下面的对话框,调整内存大小,建议设置为2G,这样操作更流畅点 设置好,点击“OK”,再点击“启动”, ...
- 4年java开发,该何去何从!
以前都是一直看,今天楼主第一次发博,还望各位不吝赐教. 今天也没别的要说的,就是吐槽一下楼主这几天的面试遭遇,感觉都有点怀疑人生了. 先说说楼主的情况吧,13年毕业本科计算机专业,到现在一直做java ...
- 【Kafka源码】处理请求
[TOC] 在KafkaServer中的入口在: apis = new KafkaApis(socketServer.requestChannel, replicaManager, groupCoor ...
- 如何自学Python?
关于如何自学Python,我也是有话说的.来看看? Python具有丰富和强大的类库,常被称为胶水语言.而且语法简洁而清晰,功能强大且简单易学,因而得到了广泛应用和支持.它特别适合专家使用,也非常适 ...
- 移动端效果之LoadMore
写在前面 列表一直是展示数据的一个重要方式,在手机端的列表展示又和PC端展示不同,毕竟手机端主要靠滑.之前手机端之前一直使用的IScroll,但是IScroll本身其实有很多兼容性BUG,想改动一下需 ...
- SpringMV---params and headers
配置文件承接一二章 params params:请求的参数 params=value 表示请求过来的参数必须等于value params!=value 表示请求过来的参数必须不等 ...
- 天龙八步"细说浏览器输入URL后发生了什么
本文摘要: 1.DNS域名解析: 2.建立TCP连接: 3.发送HTTP请求: 4.服务器处理请求: 5.返回响应结果: 6.关闭TCP连接: 7.浏览器解析HTML: 8.浏览器布局渲染: 总结 输 ...
- springboot使用i18n时properties文件中文乱码
在springboot使用i18n进行国际化文件配置时,文件名为messages_zh_CN.properties的文件中填写中文信息,当使用浏览器进行访问时,出现中文乱码,此时在idea中进行修改s ...
- phpstorm-----实现实时编辑服务器代码
phpstorm是一款功能强大.广大码农钟爱的编辑器,也是我最常用的编辑器.这里介绍一个偷懒的功能. 用sftp协议与远程服务器相连接,实现直接编辑服务器代码的功能.而效果就是ctrl+s不仅可以保存 ...