SQL中的cast和convert的用法和区别
SQL中的cast和convert的用法和区别
SQL中的cast和convert的用法和区别一、语法:
1、使用 CAST
CAST ( expression AS data_type )
2、使用 CONVERT
CONVERT (data_type[(length)], expression [, style])
3、参数说明
expression
是任何有效的表达式。
data_type:
目标系统所提供的数据类型,包括 bigint 和 sql_variant。不能使用用户定义的数据类型。
length
nchar、nvarchar、char、varchar、binary 或 varbinary 数据类型的可选参数。
style
日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型);或者字符串格式样式,借以将 float、real、money 或 smallmoney 数据转换为字符数据(nchar、nvarchar、char、varchar、nchar 或 nvarchar 数据类型)。
二、cast和convert的代码示例
select CAST('123' as int) -- 123
select CONVERT(int, '123') -- 123
select CAST(123.4 as int) -- 123
select CONVERT(int, 123.4) -- 123
select CAST('123.4' as int)
select CONVERT(int, '123.4')
-- Conversion failed when converting the varchar value '123.4' to data type int.
select CAST('123.4' as decimal) -- 123
select CONVERT(decimal, '123.4') -- 123
select CAST('123.4' as decimal(9,2)) -- 123.40
select CONVERT(decimal(9,2), '123.4') -- 123.40
declare @Num money
set @Num = 1234.56
select CONVERT(varchar(20), @Num, 0) -- 1234.56
select CONVERT(varchar(20), @Num, 1) -- 1,234.56
select CONVERT(varchar(20), @Num, 2) -- 1234.5600
三、convert函数的style参数说明
1、Date 和 Time 样式
不带世纪数位 (yy) | 带世纪数位 (yyyy) | 输入/输出 |
- | 0 或 100 | mon dd yyyy hh:miAM(或 PM) |
1 | 101 |
1 = mm/dd/yy
|
2 | 102 |
2 = yy.mm.dd
|
3 | 103 |
3 = dd/mm/yy
|
4 | 104 |
4 = dd.mm.yy
|
5 | 105 |
5 = dd-mm-yy
|
6 | 106 |
6 = dd mon yy
|
7 | 107 |
7 = Mon dd, yy
|
8 | 108 | hh:mi:ss |
- | 9 或 109 | mon dd yyyy hh:mi:ss:mmmAM(或 PM) |
10 | 110 |
10 = mm-dd-yy
|
11 | 111 |
11 = yy/mm/dd
|
12 | 112 |
12 = yymmdd
|
- | 13 或 113 | dd mon yyyy hh:mi:ss:mmm(24h) |
14 | 114 | dd mon yyyy hh:mi:ss:mmm(24h) |
- | 20 或 120 | yyyy-mm-dd hh:mi:ss(24h) |
- | 21 或 121 | yyyy-mm-dd hh:mi:ss.mmm(24h) |
- | 126 | yyyy-mm-ddThh:mi:ss.mmm(无空格) |
- | 127 | yyyy-mm-ddThh:mi:ss.mmmZ(无空格) |
- | 130 | dd mon yyyy hh:mi:ss:mmmAM |
- | 131 | dd/mm/yyyy hh:mi:ss:mmmAM |
2、float 和 real 样式
值 | 输出 |
0(默认值) |
最多包含 6 位。 |
1 |
始终为 8 位值。 |
2 |
始终为 16 位值。 |
3、money 和 smallmoney 样式
值 | 输出 |
0 | 小数点左侧每三位数字之间不以逗号分隔,小数点右侧取两位数,例如 4235.98。 |
1 | 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。 |
2 | 小数点左侧每三位数字之间以逗号分隔,小数点右侧取两位数,例如 3,510.92。 |
126 | 转换为 char(n) 或 varchar(n) 时,等同于样式 2 |
- SQL中的cast和convert的用法和区别
- video tv cast怎么用(video下autoplay属性无效的解决方法添加muted属性)
- SQL中的cast()函数
- sqlserver语句中的temp(SQL SERVER中强制类型转换cast和convert的区别详解)
- 涉及3条地铁线路 成都这4座轨道交通站点有新名字了(涉及3条地铁线路)
- 来了 成都轨道交通5条线路刷新 进度条(成都轨道交通5条线路刷新)
- 一部手机两套系统 OPPO Find X3的正确打开方式你知道吗(一部手机两套系统)
- OPPO用户看过来 汇总几个春节实用技巧,轻松搞定多设备联动玩法(汇总几个春节实用技巧)
- 北京旅游攻略(北京旅游攻略5日游及其花费)
- 四川旅游攻略(四川旅游攻略自由行攻略)
热门推荐
- python分支的描述(学习python分支结构)
- python如何用md5作为文档名(Python生成MD5值的两种方法实例分析)
- C#压缩图片不失真
- nginx配置静态资源访问(nginx 多个location转发任意请求或访问静态资源文件的实现)
- laravel权限控制(laravel-admin 在列表页添加自定义按钮的例子)
- docker安装java8(docker安装java环境的实现步骤)
- filezilla连接linux服务器连不上(filezilla搭建ftp服务器教程)
- css3自制像素细线(css3绘制百度的小度熊)
- mysql用户授权的步骤(mysql创建用户并赋予用户权限详细操作教程)
- 如何设置tomcat的jvm(Tomcatc3p0配置jnid数据源2种实现方法解析)