位置: 编程技术 - 正文

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

  • 美国个税计算器2021计算器
  • 什么情况下进项税额需要转出
  • 待转销项税额是几级科目
  • 小型微利企业认定标准最新
  • 金税盘维护费全额抵扣吗
  • 以前年度费用退回怎么做账
  • 变更法人代表要查征信吗
  • 多少金额以下可以一次性费用
  • 无形资产减值损失一经确认在以后期间不得转回
  • 红冲后的发票税可以办退税吗
  • 财政票据可以抵税吗
  • 个人劳务费增值税如何缴纳
  • 购入固定资产如何摊销
  • 存货置换固定资产
  • 公司买的车怎么做分录
  • 长期股权投资的初始计量
  • 承租承包经营个人所得税
  • 虚开发票对所得税的影响是怎样的?
  • 一般纳税人净利润300万企业所得税怎么算
  • 电力设备维护费增值税税率
  • 什么叫递延所得税费用?
  • 超市开具预付卡发票不征税发票上税吗
  • 全额抵扣的发票怎么申报增值税
  • 计提债券本年利息分录
  • win10怎么更换版本
  • Win10无法访问局域网计算机
  • 评估价值时点依据什么
  • vnisedit 打包
  • php中实现文件上传的函数是什么
  • 实收资本大于注册资本是什么意思
  • 发财树怎么修剪枝叶视频教程
  • 企业现金流量表怎么分析
  • 公司清算的补偿方案是不是应该公布了
  • 伦索伊斯马拉赫塞斯国家公园
  • php缓存机制有哪些
  • php使用oci8扩展连接oracle
  • Yii2使用表单上传文件的实例代码
  • 增长gdp是什么意思
  • vue sha256加密
  • vue设置元素不可点击
  • 固定资产被替换的账面价值怎么算
  • 专项应付款怎么转固定资产
  • 6款好用的ppt制作软件推荐
  • python怎么查看文件路径
  • 低值易耗品在年报上怎么看的
  • 织梦内容页模板修改
  • python导入模块的本质
  • 打开access自动弹出窗体
  • 企业所得税汇算清缴会计分录
  • 收到所得税退税现金流量选哪个
  • 以前年度损益调整
  • 汇算清缴后取得上一年发票
  • 劳务派遣的工资是谁发的
  • 公司人事怎么办公积金提取流程?
  • 生活垃圾处理费标准
  • 技术咨询服务开票代码
  • 股东不能参与公司运营和决策,可以起诉吗
  • 工商联络注册
  • mysql解压版安装教程5.7.20
  • win7安装mysql5.5
  • Windows任务计划高级应用
  • git checkout撤销
  • freebsd操作命令
  • 优盘和硬盘
  • kdeskcore.exe是什么
  • mac os x 10.9.5
  • linux系统怎么安装
  • linux使用mv命令,结果文件不见了
  • bat 批处理文件
  • python爬虫教程
  • iframe隐藏页面内容
  • javascript例题
  • nodejs dgram
  • jquery倒计时代码
  • jquery作品
  • 国家税务局浙江电子税务局官网入口
  • 非税收入纳入一般公共预算管理
  • 浙江省有多少家农业银行
  • 属于资源税类的税种有哪些
  • 河南省税务零申报怎么操作
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设