位置: 编程技术 - 正文

SQL Server数据类型转换方法(sqlserver数据类型转换函数)

编辑:rootadmin

推荐整理分享SQL Server数据类型转换方法(sqlserver数据类型转换函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:sql server数据类型整理,sql server数据类型有哪几种,sqlserver数据类型转换函数,sql server数据类型有哪几种,sqlserver数据类型转换函数,sql server数据类型有哪些,sql server数据类型转换,sqlserver数据类型转换函数,内容如对您有帮助,希望把文章链接给更多的朋友!

在SQL Server日常的函数、存储过程和SQL语句中,经常会用到不同数据类型的转换。在SQL Server有两种数据转换类型:一种是显性数据转换;另一种是隐性数据转换。下面分别对这两种数据类型转换进行简要的说明:

1 显式转换

显示转换是将某种数据类型的表达式显式转换为另一种数据类型。常用的是CAST 和 CONVERT 函数。

CAST: CAST ( expression AS data_type ) CONVERT: CONVERT (data_type[(length)], expression [, style])

参数 expression 是任何有效的 Microsoft SQL Server表达式。data_type 目标系统所提供的数据类型,不能使用用户定义的数据类型。

2 隐性转换

隐性转换对于用户是不可见的,由SQL Server 引擎自动处理。 隐性转换自动将数据从一种数据类型转换成另一种数据类型。例如,如果一个 smallint 变量和一个 int 变量相比较,这个 smallint 变量在比较前即被隐性转换成 int 变量。 当从一个 SQL Server 对象的数据类型向另一个转换时,一些隐性和显式数据类型转换是不支持的。例如,nchar 数值根本就不能被转换成 image 数值。nchar 只能显式地转换成 binary,隐性地转换到 binary 是不支持的。nchar 可以显式地或者隐性地转换成 nvarchar。

3 隐性转换的风险

隐性转换有的时候非常方便,可以简化SQL 脚本,但是这里面也孕育着潜在的风险,可能会出现在脚本一开始运行的时候都是正常的,但却某一个时间点之后,程序莫名出现错误。下面举一个现实项目中的例子来说明。在SQL Server 中有一个表,需要从两个不同的数据表中拉取数据,由于这两个数据表属于不同的系统,其主键类型是不同的,一个是int类型,一个是GUID,一开始想着这两个都可以转换成字符类型进行存储。所以就在表中建立一个nvarchar()的混合ID列作为主键。如下图所示:

SQL Server数据类型转换方法(sqlserver数据类型转换函数)

一开始拉取的数据并未有GUID的值,都是INT类型转换过来的数据,所以SQL脚本运行的正常,但是突然某一次运行时,出现了“在将 nvarchar 值 '4C-F-FE-8A0A-DB4EB1FF2' 转换成数据类型 int 时失败。”的错误。如下图所示:

定位到脚本,执行的SQL如下:

select * from dbo.Demo where 混合ID=

其中主键中的数据有GUID转换的字符型,也有INT转换的字符串,示例数据如下:

但是如果执行下面的SQL,则都是正常执行:

结果如下:

出现上述错误的结果应该是这样的:

select * from dbo.Demo where 混合ID=在执行时,SQL Server会将nvarchar类型的隐性转换成int类型,如果数据中没有GUID类型的字符,则转换正常,如果有,当进行GUID字符到INT的隐性转换时,则转换失败。

标签: sqlserver数据类型转换函数

本文链接地址:https://www.jiuchutong.com/biancheng/312902.html 转载请保留说明!

上一篇:SQL语句性能优化(续)(sql性能优化方法)

下一篇:SQL(MSSQLSERVER)服务启动错误代码3414的解决方法

  • 缴纳购销合同印花税怎么算
  • 增值税的附加税有几个
  • 税前经营利润计算
  • 用友t3年末怎么结转
  • 进项税额留抵科目
  • 发票开成了下属机构的可以报销吗
  • 车辆购置税账务怎么处理流程
  • a3软件怎么反记账
  • 简易计税收入会计分录
  • 应税服务零税率是什么
  • 期初余额什么时候在借方什么时候在贷方
  • 投资性房地产转换日公允价值大于账面价值
  • 异地存款手续费2022最新规定
  • 固定资产的清查由哪个部门负责
  • 免税的销售额要怎么填入报表
  • 实收资本印花税最新规定
  • 其他应付款怎么理解
  • 总公司集中支付说明
  • 核定征收取消了
  • 积分返现活动
  • 为什么有的发票没有发票章
  • 工商年报人数是12月人数吗
  • 电脑找不到休眠设置了
  • 苹果电脑截图快捷键
  • SWNETSUP.EXE - SWNETSUP是什么进程 有什么用
  • 土地出让金可以代缴吗
  • 差额征税账务处理规定
  • vue 的watch
  • 变动成本法计算营业利润
  • 万字短文
  • 迭代器,生成器
  • 财税[1994]26号
  • 建行e信通怎么提现怎么操作
  • opencv 边缘
  • yolov5增加检测层
  • 资产计税基础填资产原值吗
  • 帝国cms移动端
  • mysql中触发器的创建有多个执行语句
  • 去参加博览会的英文
  • 劳务报酬个人所得税税率表2023
  • 外贸公司出口退税流程
  • 可供出售交易性金融资产申报表怎么填
  • 省市县三级联动工作机制
  • 企业收到退回的社保费分录
  • 公司过账的款项怎么入账
  • 委托加工环节应税消费品应纳税额的计算
  • 印花税不足一元免征吗
  • 计提本月工资社保怎么扣
  • 装修费用税法规定有哪些
  • 增值税普通发票可以跨区域开吗
  • 总分类账封面封地和启用页的区别
  • 委托加工企业的账务处理
  • mybatis collection 多条件查询的实现方法
  • Mysql 5.7.19 winx64 ZIP Archive 安装及使用过程问题小结
  • linux 新手
  • mac怎么隐藏桌面文件
  • 服务器centos6.8安装教程
  • 用U盘安装win11
  • ksweb软件
  • mac键盘怎么开
  • 硬盘安装win8.1
  • win xp怎么样
  • centos6 grub
  • win10系统桌面怎么设置密码
  • Win10 Mobile build 10586.338上手视频曝光
  • unity性能优化全攻略
  • 基于jquery的框架有哪些
  • 苹果手机如何给视频添加字幕
  • html中的td
  • 详细的测试用例
  • Ext JS 4官方文档之三 -- 类体系概述与实践
  • linux中的shell命令
  • Python爬取微信视频号
  • 如何在脚本中调字体
  • unity image fillamount
  • JQuery绑定事件的函数是
  • android回调函数
  • 钢材出口关税税率是多少
  • 广西电子税务局手机版
  • 中国税务手机版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设