位置: 编程技术 - 正文

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

  • 所得税损益类科目包括
  • 个人所得税核定征收税率是多少
  • 未达到起征点的增值税会计处理
  • 个人独资企业转个体户怎么办理
  • 个税退税是公司退还是个人退
  • 商超陈列费
  • 账簿登记的基本要求
  • 外币账户收款如何做账务处理呢?
  • 制造业交新型墙体材料专项基金款分录
  • 发票开错导致不能按时入账该怎么处理呢?
  • 车辆增值税抵扣到什么时候结束
  • 税务局申请发票
  • 高新技术企业退税比例是多少
  • 失去胜诉权但又有起诉权是什么意思
  • 工会经费可以用于哪些支出
  • 固废处理计入什么会计科
  • 出租柜台收取的服务费
  • 或有资产是指
  • 王者荣耀通用铭文狩猎和隐匿
  • 稽查补交的税款怎么处理
  • php生成guid
  • php大小写转换函数怎么写
  • sentstrt.exe - sentstrt进程是什么文件 有什么用
  • php目录列表
  • 资金支出预算的项目
  • 防伪税控服务费怎么交
  • 企业利润总额为负
  • 机票的退票费可以开具发票吗
  • 服务器连接方式包括直接相连,间接连接
  • 开发成本属于什么类型科目
  • photo-sphere-viewer中文文档
  • 报错专业怎么补救
  • 融资租赁租入固定资产是什么意思
  • 新公司有免税政策吗
  • 小规模纳税人季报需要报什么
  • 个税赡养老人专项扣除 多人
  • 简易征收要交附合同吗
  • java一天速成
  • linux 自启
  • 现金流量表里支付的各项税费包括什么
  • 留存收益的个别资本成本计算公式
  • 残疾人就业保障金
  • 企业技术服务费比例
  • 委托代销商品是什么科目
  • 预收账款计入应收账款怎么弄
  • 工业企业会计与管理论文
  • 营改增问题解答
  • 商业折扣的会计分录
  • 捷波mig41tm主板
  • xp系统怎么修改网络ip地址
  • microsoft window vista
  • windows xp和windows 2000
  • vmware虚拟化解决方案
  • xp怎么关闭自启动
  • centos6.5安装步骤
  • windows8关机在哪里
  • imac 迅雷
  • centos zsh
  • win7开机没反应怎么办
  • 系统导航栏已禁用怎么办
  • win7防火墙在哪设置
  • Win10 Mobile RedStone预览版14267.1004更新内容汇总(持续更新)
  • dos命令批处理
  • dos打开usb端口
  • 调用perl脚本
  • ecmascript5
  • Node.js中的事件循环是什么意思
  • androidstudio 教程
  • angularjs2
  • ajax+node+request爬取网络图片的实例(宅男福利)
  • Android mediaplayer 网络超时
  • JavaScript中的NaN代表什么
  • 国税局官网发票查验平台
  • 税务局属于什么行业类别
  • 广西地税局局长
  • 广东省电子学校
  • 税务安装软件
  • 浙江省网上税务局总分机构变更流程
  • 城市维护建设税怎么算
  • 公司财税知识
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设