位置: 编程技术 - 正文

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

  • 以前年度损益调整属于哪类科目
  • 公司零星支出没有发票收据怎么开
  • 教育附加费税率怎么算
  • 医院收费单能当凭证用吗
  • 个人与公司交的税怎么算
  • 汇算清缴的费用标准
  • 航空运单可以作为提货凭证吗
  • 应收账款多久收回合适
  • 个人劳务费发票可以委托其他人去开吗
  • 财税2009年59号解读
  • 海运增值税率
  • 国税地税合并后叫什么名称
  • 进项税额加计抵扣税收优惠政策
  • 代购商品委托书怎么写
  • 额外收入如何避税
  • 退税发票勾选后开红冲发票怎么申报
  • 为什么收到发票
  • 公司处置车辆税金怎么算
  • 成本计算错误如何应对
  • 个人所得税申报截止时间
  • 银行手续费扣除比例
  • 上年结转的广告费次年怎么入账
  • 本地磁盘c满了怎么清理
  • 农业企业出租厂房需要交税吗
  • 京东预付卡怎么做账
  • macos新版本
  • php数字转换大写
  • php留言板的简单编写
  • mysql的minus
  • 子公司可以接总公司的工程吗
  • 农产品个体销售税率多少
  • psd格式文档
  • 工资应发数就是企业的成本
  • 房地产预缴所得税计算公式
  • transformer的解码器
  • 个人独资企业都需要交什么税
  • opencv 边缘
  • web开发 python
  • vue3生命周期及使用
  • css5个定位
  • 大学毕业后送快递
  • vue大型项目撑得住吗
  • python中max函数的几种用法
  • 图书免增值税具体包括哪些
  • 现金折扣退回要考虑财务费用吗
  • Monaco-editor的JSONSchema配置及使用介绍
  • 本年利润有余额是什么意思
  • 进项税额的作用
  • 快递收据能报销吗
  • 货物或应税劳务名称怎么填
  • 营业总收入包含什么
  • 办公室搬迁工作
  • 政府预算会计的会计科目
  • 到银行提取备用金
  • 2018年小规模纳税人
  • 医生规培补助
  • 增值税增量留抵退税进项构成比例
  • 进项转出的原因是什么
  • 预付账款科目的余额如果在借方,则在资产负债表上
  • 开的发票超过了限额会怎样,怎么办?
  • 银行贷款信用贷
  • 收入 摊销
  • 查账征收的含义
  • 减资步骤
  • 费用预算表怎么做
  • win8不好吗
  • 安装系统需要什么工具
  • linux怎样安装
  • 操作系统安装日期查看
  • sqlagent.exe - sqlagent是什么进程
  • csinsm32.exe是安全的进程吗 csinsm32进程有哪些用处
  • win10如何打开hlp文件
  • 蓝牙鼠标不能动了
  • jquery的使用
  • python3循环语句
  • jquery使用什么方法隐藏元素
  • 资源税包括哪些
  • 直接快递出口的货物
  • 2019税务系统升级
  • 太原市地税局各分局局长
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设