位置: 编程技术 - 正文

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

  • 补缴以前年度增值税和罚款、滞纳金的所得税处理
  • 所得税费用怎么算分录
  • 赠送的代金券属于销售费用吗?
  • 来料加工账务处理举例
  • 废铁回收行业前景怎么样
  • 附加税期末余额在贷方怎么处理
  • 固定资产原值包含进项税吗
  • 电子发票冲红后算金额吗?
  • 附加税减半征收政策从什么时候开始
  • 企业所得税的优点有哪些
  • 发生销售退回如何开票
  • 销售退回所得税差异怎么处理
  • 一次性伤残就业赔偿标准
  • 劳动保护费在企业怎么交
  • 价税合计是什么会计科目
  • 查土地补贴到啥单位查明
  • 生活用品发票可以报销吗
  • 租赁物丢失如何赔偿
  • 外贸企业出口转内销过程中面临的问题
  • 外币报表折算差额在会计报表中应作为( )
  • 赊购商品一批
  • 委托付款分录
  • 这个月发票没用怎么做账
  • 总公司和分公司的关系证明
  • 财产清查的会计分录
  • 申报个税是按哪个月的工资表
  • 金蝶软件怎么批量审核凭证
  • 固定资产处置要交所得税吗
  • macbook上安装windows10
  • 房产税存在往期未申报信息怎么处理
  • 增值税专用发票有几联?
  • 公司内部罚款的备注怎么写劳动仲裁
  • php面试算法
  • 向房东要押金的不犯法的妙招
  • 借条和欠条的区别 法律效力
  • PHP:imagesetinterpolation()的用法_GD库图像处理函数
  • 实际收到的货款怎么做账
  • 处置固定资产增值税怎么计算
  • 动态定位
  • 营改增后一般纳税人缴纳增值税彩用简易征收3%
  • 小程序封装网络怎么设置
  • 公司注册认缴的期限一般是多少
  • Node.js——http模块和导出共享
  • yolov5增加检测层
  • 什么发票可以抵扣企业所得税
  • java 邮件
  • sql server提示不允许保存更改
  • 企业食堂的费用入什么科目
  • SQLserver行转列
  • 借款怎么入会计分录
  • 其他收益期末余额
  • 手工账做账流程总结
  • 网上报税有没有时间限制
  • 应收票据的账务处理程序
  • 在建工程项目包括
  • 所有者权益类期末贷方余额公式
  • 验资 银行
  • 高新技术企业每年需要多少专利
  • sql语句学习
  • mysql 一键安装
  • ubuntu系统中文
  • win10系统无法打开这个应用
  • ubuntu21.04中文
  • linux 操作系统
  • git打标签命令
  • js定时器的两种方法
  • js怎么理解
  • asm指令
  • css中有序列表
  • jquery操作样式的方法
  • jquery设置内容
  • jquery手册手机版
  • js 编程
  • 前方高能(莞尔wr)晋江
  • 重庆电子税务局电话人工客服电话
  • 租房交税是房东交还是中介交
  • 社会福利企业可以投资吗
  • 包头市到青山区多少公里
  • 中医药文化进校园活动
  • 成都市青羊区国有资产监督管理办公室
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设