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的用法和区别
- sqlserver语句中的temp(SQL SERVER中强制类型转换cast和convert的区别详解)
- video tv cast怎么用(video下autoplay属性无效的解决方法添加muted属性)
- SQL中的cast()函数
- 这个全椒人被通报表彰,看看你认识吗(这个全椒人被通报表彰)
- 全椒人,38年集体回忆 1980-2018 ,看完不要哭(全椒人38年集体回忆)
- 董元奔吟咏历代文人 1012新旧均可 全椒人张璪 1022 -1093(董元奔吟咏历代文人)
- 泪目 这位 刷屏 的英雄,是全椒人的骄傲(泪目这位刷屏)
- 人从众 火炎焱 全椒再现 正月十六走太平 的魅力(人从众火炎焱全椒再现)
- 官宣 全椒籍明星许海峰 奚秀兰 方芳 王璐瑶携手回家 走太平(全椒籍明星许海峰)
热门推荐
- kubernetes是如何调度的(云原生技术kubernetes调度单位pod的使用详解)
- vue滚动条下拉翻页(Vue中利用better-scroll组件实现横向滚动功能)
- jquery左右选择框
- laravel图文消息后台处理(laravel利用中间件防止未登录用户直接访问后台的方法)
- h5前端入门(前端H5 Video常见使用场景简介)
- 服务器怎么创建网站(网站如何选择服务器空间?)
- laravel框架如何查询空的信息(Laravel中validation验证 返回中文提示 全局设置的方法)
- dedecms搜索功能怎么设置详细(取消dedecms 留言簿的验证码的方法)
- css基线实例详解(移动端使用 rem 单位时 css sprites 定位问题的解决)
- pandas统计多行数据(pandas去重复行并分类汇总的实现方法)