位置: 编程技术 - 正文

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

  • 税收的基本特征包括?
  • 出售技术所有权的会计分录
  • 收入和费用类科目一般设置为什么辅助核算
  • 进项票和销项票是什么意思
  • 融资租赁确认的利息收入需要交增值税吗
  • 小微企业零申报多久报一次税
  • 房企与个人订立购房合同是否贴花?
  • 以个人名义开的发票
  • 事业单位人员租房有补助吗
  • 利润分配包括缴纳所得税吗
  • 差额发票和全额发票的税率
  • 案件补贴
  • 私车公用产生的过路费怎么开发票
  • 个人转到公司账上的钱能开发票吗
  • 税率调整后之前签的合同用变更吗
  • 车辆后期保养费用
  • 购买方和销售方一样可以报销吗
  • 增值税普通发票怎么开
  • 非公司私营企业属于什么类型
  • 开票码是什么意思
  • 质押股票是否缴印花税
  • 发票盖章盖成了财务章有影响吗
  • 企业停产没有收入,费用可以计入长期待摊费用吗
  • excel合并的单元格怎么填充序列
  • itunes无法链接
  • 不能升级win11的二手电脑值得购买吗
  • 挑主板要注意什么
  • 如何防止程序被关闭
  • 安装额外语言
  • 公司购入二手设备 如何开具发票
  • linux系统添加静态路由命令
  • 付款保险费
  • 外购货物用于不动产在建工程
  • 代收的税金如何记账
  • 软件开发中的业务一般指什么
  • php如何实现
  • php设置图片将图片居中
  • php多级分类
  • 法定假日的加班费怎么算
  • 企业会计准则股本
  • 弥补以前年度亏损金额从哪里来的
  • 非上市公司股权估值
  • 待报解预算收入什么意思
  • 只有收据没有发票怎么报销
  • csdn创作激励
  • 补差价如何做账
  • 法人提取备用金多久归还
  • 网页视频不显示画面
  • 长期应付款列报为什么是后一年的
  • watch跟computed区别
  • 工程实践指的是
  • 你让他心动他让你心安
  • 应收账款的
  • 销售折扣 会计处理
  • 样品开发计划
  • PostgreSQL 查看数据库,索引,表,表空间大小的示例代码
  • sqlyog与mysql
  • 母公司给子公司注资要交印花税吗
  • 利润分配的账务处理实验报告
  • 进口设备 退税
  • 营改增是从什么时候开始实施的
  • 堤防维护费税率
  • 固定资产原值减少后如何计提折旧
  • 一般纳税人抵扣进项税流程
  • 培训奖励怎么写
  • SqlServer 2000、2005分页存储过程整理第1/3页
  • mac系统操作的小技巧
  • centos6开机启动服务
  • ime是什么文件
  • linux jack
  • xp连接到共享打印机
  • win10禁止显卡驱动自动安装
  • w7升级w8.1
  • 用简洁的语言推荐一本书
  • Android studio 无法勾选sdk
  • 百度关键字搜索员是干嘛的
  • jquery控制样式
  • 地税申报网站
  • 税控卡丢失怎么办
  • 2021年十大慈善企业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设