SQL Server 转换因算术溢出而失败

2023-12-20

根据 SQL Server 2008 联机丛书中关于小数和数字数据类型的条目,精度为:

p(精度) 可存储的小数位数的最大总数(包括小数点左侧和右侧)。精度必须是 1 到最大精度 38 之间的值。默认精度为 18。

但是,下面的第二个选择失败,并显示“将 int 转换为数据类型 numeric 时出现算术溢出错误”。

SELECT CAST(123456789 as decimal(9,0))
SELECT CAST(123456789 as decimal(9,1))

看这里:http://msdn.microsoft.com/en-us/library/aa258832(SQL.80).aspx http://msdn.microsoft.com/en-us/library/aa258832(SQL.80).aspx

小数[(p[ s])]

p(精度)指定小数位数的最大总数 可以存储,都在左侧 和小数点右边。 精度必须是从 1 开始的值 通过最大精度。这 最大精度为 38。默认值 精度为18。

s(比例)指定可以显示的最大小数位数 存储在小数点右边 观点。比例必须是从 0 开始的值 通过 p.只能指定比例 如果指定精度。默认 比例尺为 0;因此,0

使用时:decimal(p,s), 考虑到p作为您要存储的总位数(无论小数点左边还是右边),以及s其中有多少p数字应位于小数点右侧。

DECIMAL(10,5)=     12345.12345
DECIMAL(10,2)=  12345678.12
DECIMAL(10,10)=         .1234567891
DECIMAL(11,10)=        1.1234567891

您的示例代码失败:

SELECT CAST(123456789 as decimal(9,1))

因为:

9=精度(小数点左右的总位数)
1=scale(小数点右边的总位数)
(9-1)=8(小数点左边的总位数)

而您的值 123456789 需要小数点左边 9 位数字。你会需要decimal(10,1)要不就decimal(9,0)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL Server 转换因算术溢出而失败 的相关文章

随机推荐

  • Freebase API:超出用户速率限制

    我的应用程序出现问题 并且超出了每秒用户速率 这是我收到的错误 error errors domain usageLimits reason userRateLimitExceededUnreg message User Rate Limi
  • 分配 6xNxN 数组

    我有一个变量N 我需要一个6xNxN array 像这样的事情 int arr 6 N N 但显然 这是行不通的 我不确定如何分配它以便我可以访问 例如arr 5 4 4 if N是 5 并且arr 5 23 23 if N is 24 注
  • 如何使用 create-react-app 创建 React 应用程序(包括 Web3)?我收到模块未找到错误。重大变更:使用了 webpack < 5

    我是 Web3 的新手 我正在尝试创建一个与 web3 集成的 React 应用程序 以下是我在 Ubuntu 中遵循的步骤 create react app app name cd app name npm i save web3 npm
  • php 编辑 Cufon 字体替换

    我正在尝试更改网站上菜单项的颜色 但我不知道在哪里添加我想要使用的颜色代码 c3c3c3
  • 使用来自 IdentityServer 的访问令牌访问 AWS API 网关

    我们使用身份服务器实现了身份服务器 https github com IdentityServer IdentityServer3 https github com IdentityServer IdentityServer3 or htt
  • 如何在 swift ios 中关闭 2 个视图控制器? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • 谷歌云数据存储中的 HAS ANCESTOR 和 HAS DESCENDANT 子句

    我正在研究Google Cloud Datastore GQL 语法 https developers google com datastore docs apis gql gql reference hl en grammar 特别是HA
  • 在视图控制器之间传递行选择

    使用情节提要 我目前有一个静态的 Uitableview 当用户从父表视图中选择一行时 将显示一个新的表视图 其中显示一些选项 一旦用户从新表视图中选择一行 我想关闭该表并重新显示父视图控制器 并将用户选择显示在单元格中 几乎是表单的单选
  • WCF 传输安全:套接字连接已中止

    我在让交通安全工作方面遇到问题 我有 2 个服务 A 和 B 在同一台服务器上运行 服务A将调用服务B来执行某些任务 没有任何安全保障 我也可以很好地沟通 但是当我使用以下设置打开传输安全性时 安全模式 传输 传输 ClientCreden
  • 在 Android 中按像素滚动 ListView

    我想滚动 aListView在 Android 中按像素数 例如 我想将列表向下滚动 10 个像素 以便列表中的第一项隐藏其前 10 个像素行 我以为明显可见的scrollBy or scrollToListView 上的方法可以完成这项工
  • 如何在不终止解释器的情况下中断本机扩展代码?

    我正在开发一个项目 它将用 C 编写的高性能算法与 Python 接口相结合 C 类和函数通过 Cython 编译器包装并暴露给 Python 假设我从 Python 解释器调用一个长时间运行的本机函数 我首选的是 IPython 是否有可
  • VS2010数据库项目有表设计器吗?

    我在这里错过了什么吗 似乎在 VS2010 的数据库项目中创建新表的唯一选项是 创建一个表对象作为文件 然后将所有约束 默认 创建为单独的文件 然后将每个索引创建为单独的文件 并将主键创建为单独的文件 等等 Or 使用 SSMS 中的表设计
  • Qt:字段类型不完整

    无法编译我的课程 出现错误 错误 字段 文件名 的类型不完整 如果我改变QString filename to QString filename 错误消失 但我需要QString filename 进程 h ifndef PROCESS H
  • Android 对话框中的中心消息

    我希望对话框中的消息文本居中对齐 当然 您始终可以设置原始文本视图的重力 这使您不必担心格式和填充 例如 AlertDialog Builder builder new AlertDialog Builder this builder se
  • 为什么 tqdm 打印到换行符而不是更新同一行?

    我正在用 python 开发一个小型命令行游戏 其中使用 tqdm 模块显示进度条 我使用 msvcrt 模块监听用户输入来中断进度 一旦中断 用户可以通过在命令行提示符中输入 restart 来重新启动 第二次显示进度条时 它不会用进度更
  • 可变数量的依赖嵌套循环

    给定两个整数n and d 我想构造一个所有长度非负元组的列表d总而言之n 包括所有排列 这类似于整数划分问题 https stackoverflow com questions 10035752 elegant python code f
  • ASP.NET Core 模板 3.1.5 - serviceDependencies.json

    我刚刚更新了视觉工作室 2019并指出 在新的ASP NET Core MVC 的模板 3 1 5 有服务依赖关系 json目前在 ASP NET Core 文档中没有任何关于此的内容 而且我在 google 中也找不到任何内容 我明白 以
  • 检查 current_user 是否是资源的所有者并允许编辑/删除操作

    Example User A id 10 已创建photo资源 photo id 1 user id 10 url http 现在 如果用户B id 20 转到此网址 photos 1 edit它可以编辑用户的照片A 导轨 设计默认情况下为
  • 显示谓词子句每个目标的执行时间

    我想查看谓词目标内的执行时间SICStus 序言 例子 pred goal1 time goal2 time go call pred time go go times go 预期结果 time go times go 1000ms tim
  • SQL Server 转换因算术溢出而失败

    根据 SQL Server 2008 联机丛书中关于小数和数字数据类型的条目 精度为 p 精度 可存储的小数位数的最大总数 包括小数点左侧和右侧 精度必须是 1 到最大精度 38 之间的值 默认精度为 18 但是 下面的第二个选择失败 并显