SQLServer中bigint转int带符号时报错问题解决方法

 更新时间:2014年09月11日 17:16:31   投稿:whsnow  
用一个函数来解决SQLServer中bigint转int带符号时报错问题,经测试可用,有类似问题的朋友可以参考下

有一个需求是要在一个云监控的状态值中存储多个状态(包括可同时存在的各种异常、警告状态)使用了位运算机制在一个int型中存储。

现在监控日志数据量非常大(亿级别)需要对数据按每小时、每天进行聚合,供在线报表使用。
状态分了3个级别:正常(0)、警告(1)、异常(2),聚合时需要使用max选择最差的状态,就需要对状态值进行处理加上级别和状态位个数,就要借助bigint型来做运算了,

问题是再将bigint 转为 int时获取原始状态值时,SQLServer报错了:

消息 8115,级别 16,状态 2,第 1 行
将 expression 转换为数据类型 int 时出现算术溢出错误。

因为状态码中已经用到了 0x80000000, 出现了符号位的问题。
写了一个转换函数解决了。

CREATE FUNCTION [dbo].[BigintToInt]

(

@Value bigint 

)

RETURNS int

AS

BEGIN

-- 是否有int符号位

IF @Value & 0x80000000 <> 0 RETURN @Value & 0xFFFFFFFF | 0xFFFFFFFF00000000

-- 无符号位

RETURN @Value & 0xFFFFFFFF

END

相关文章

  • 在 SQLSERVER 中快速有条件删除海量数据

    在 SQLSERVER 中快速有条件删除海量数据

    最近有个朋友问我,他说他在SQLSERVER删除几百万到几千万数据是显的很慢,帮他分析了一下,提了一些以下意见,或许对很多人有用。
    2008-10-10
  • 简单介绍SQL Server里的闩锁

    简单介绍SQL Server里的闩锁

    这篇文章我们探讨了SQL Server里的闩锁,以及如何使用DMV sys.dm_os_wait_stats 和sys.dm_os_latch_stats进行闩锁等待的故障排除,需要的朋友可以参考下
    2015-07-07
  • SQL Server 中的数据类型隐式转换问题

    SQL Server 中的数据类型隐式转换问题

    这篇文章主要介绍了SQL Server 中的数据类型隐式转换问题,本文给大家介绍的非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • SQL注入之sqlmap入门学习

    SQL注入之sqlmap入门学习

    本文主要介绍了SQL注入之sqlmap入门学习,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 解析Mybatis对sql表的一对多查询问题

    解析Mybatis对sql表的一对多查询问题

    这篇文章主要介绍了解析Mybatis对sql表的一对多查询,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • SQL Server 文件操作方法

    SQL Server 文件操作方法

    在master数据库中,SQL Server提供系统扩展的存储过程,其中有一些存储过程的命名以xp_开头,用于处理操作系统的文件。这篇文章主要介绍了SQL Server 文件操作方法,需要的朋友可以参考下
    2018-02-02
  • SQL语句练习实例之一——找出最近的两次晋升日期与工资额

    SQL语句练习实例之一——找出最近的两次晋升日期与工资额

    程序员们在编写一个雇员报表,他们需要得到每个雇员当前及历史工资状态的信息,以便生成报表。报表需要显示每个人的晋升日期和工资数目。
    2011-10-10
  • 巧妙的自关联运用

    巧妙的自关联运用

    最近在改报表分页,遇到一个很棘手的问题,需要将比较正常的数据记录新增加两列
    2012-08-08
  • 学会sql数据库关系图(Petshop)

    学会sql数据库关系图(Petshop)

    花了这么多时间最终还是回到了数据库,但是数据库中一张一张的表格找不到脚本,也不是自己设计的数据库,完全没有一点头绪,后来突然想起来sql有个数据库关系图,可以很快的适合数据库程序员很快的掌握数据库表之间的关系
    2012-08-08
  • SQL Server中JSON函数的用法详解

    SQL Server中JSON函数的用法详解

    本文详细讲解了SQL Server中JSON函数的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05

最新评论