位置: 编程技术 - 正文

SQL Server数据类型转换方法(sqlserver数据类型转换函数)

发布时间:2024-01-29

推荐整理分享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索引类型
  • 数据库管理框架
  • 企业取得土地使用权可能作为什么核算
  • .size()
  • eterm指令退出a
  • php array_walk_recursive 使用自定的函数处理数组中的每一个元素
  • 高新企业研发项目是否需要立项审批?
  • 留抵退税税务总局规定的其他情形
  • 未取得增值税发票开具二手车发票
  • 发票打印机如何安装在电脑上
  • mongodb怎么用
  • sql语句的查询语句
  • 房租押金需要缴税吗
  • sql条件查询语句怎么写
  • 农副产品普通发票可以抵扣增值税吗
  • mysql数据查询慢
  • 文化事业建设费减免政策
  • 股权收购协议书实际案例
  • 营业外支出账户核算的主要内容有
  • 房贷利息抵个税怎么申请
  • 以前年度的销售退回能否直接冲减销售收入
  • 可供分配利润包括提取的盈余公积吗
  • 托管服务费开什么发票
  • 我是海关企业员工英语
  • 简易征收可以抵税吗
  • freebsd怎么用
  • wp_official_1.1.3.apk软件下载
  • 去掉快捷功能
  • spoolsrv32.exe - spoolsrv32进程是什么文件 有何作用
  • win7开机黑屏怎么
  • windows8联网
  • win10app商店
  • win8怎么修改电脑密码修改
  • WIN10怎么彻底删除works2
  • cocos2dx视频教程
  • 游戏开发指南笔趣阁
  • linux shell 循环语句
  • jq获取form表单数据
  • python3.7 pip
  • jquery formatter
  • js浏览器运行机制
  • android 设置竖屏
  • js倒计时算法
  • android studio 安装步骤
  • 吉林税务网上办事大厅
  • 江苏税务查询授权验证码
  • 怎么用发票号码查询商品
  • 北京税务分所怎么样啊
  • 广东省税务局登录
  • 办理增值税一般纳税人所需资料
  • 必须抓好什么治理能力和治理体系
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号