位置: 编程技术 - 正文

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的解决方法

  • 房地产开发企业资质管理规定
  • 增值税为10%的有哪些
  • 外贸企业出口退税流程图
  • 综合收益总额与什么有关
  • 报税时资产总额怎么填
  • 电子税务局税种认定在哪里看
  • 对方只能开普票怎么办
  • 公司电视机 摊销多少年
  • 持有至到期投资是什么意思
  • 房产税的纳税义务
  • 建筑企业异地预缴增值税计算
  • 什么样的运输发动机最好
  • 垫付被骗客服承诺退款
  • 参加会议需要用身份证吗
  • 盈余公积可以随便用吗
  • 非居民企业所得税源泉扣缴管理暂行办法
  • 有一个月忘了报税怎么处理
  • 发票不一致是什么原因
  • 混业经营试点
  • 递延所得税资产怎么计算
  • 股东赠与计入资本公积,交税
  • 公司还款给法人需要缴税吗
  • 在edge浏览器中打开农行K宝
  • window10的帮助与支持窗口在哪
  • 新版edge浏览器极速模式
  • 王者荣耀中太乙真人的技能有哪些?
  • 上年超额广告费会计分录
  • 一键ghost软件怎么用
  • 由于找不到msvcr120.dll,无法继续执行代码什么意思
  • 固定资产核销程序
  • intempt
  • 企业法人看病费用能报销吗
  • 出口货物视同内销征税的会计核算
  • 委托出口的会计分录
  • 债权人将长期债务转为投资
  • 应收款抹零
  • 应付职工薪酬是负债吗
  • 应收票据到期后账务处理
  • 增值税加计抵减企业所得税如何处理
  • php 集成环境
  • 房产税和城镇土地使用税需要计提吗
  • sql代码大全
  • 大西洋,一望无际的海面
  • vue中的provide/inject
  • 27岁零基础转行做网络工程师
  • touch命令创建多个文件
  • 财务报表没有申报会影响领发票吗
  • 中标费用入什么科目
  • 企业年金管理费专票能抵扣吗
  • 申报纳税的税务机关
  • 退休认证在网上怎么操作
  • 上一年度的费用能入今年账吗
  • 房产原值是含税还是不含税
  • 税额和税率一样吗
  • 吸收合并和新设合并哪个更好
  • 详解增发万亿国债细节
  • 采购成本和销售成本谁影响利润
  • 购买汽车轮胎的注意事项
  • 公司账户转账给个人要交税吗
  • 项目回款是什么意思
  • 差旅费的进项税额需要转出吗
  • 废品损失明细账应选择三栏式
  • 工业企业销售商品
  • 私营企业会计退休年龄50还是55
  • 委托加工企业的账务处理
  • vmware虚拟机关机快捷键
  • OS X 10.12.6 beta 1如何更新 OS X 10.12.6 beta 1如何升级
  • linux oracle 12505
  • centos6基础命令
  • 开机提示windows即将过期
  • WIN10如何禁用驱动程序强制签名
  • linux ftp服务端
  • window10软件搜索
  • iis安装步骤 windows server 2008
  • Unity AssetBundle爬坑手记
  • android sdk使用教程
  • python 判断字符串编码
  • jQuery+Ajax实现限制查询间隔的方法
  • 青岛新农合网上缴费时间
  • 财务年中工作总结简短
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设