一个函数解决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中的Scanf与Printf
SQLServer中有两个扩展存储过程实现Scanf和Printf功能,恰当的使用它们可以在提取和拼接字符串时大幅度简化SQL代码. 1.xp_sscanf,用它可以分解格式相对固定的字符串,这对于厌倦使用一堆substring和charindex的朋友来说不错.比如前几天的一个帖子中提出的如何分解ip地址,相对简练且通用的代码应该是下面这样 复制代码 代码如下: if (object_id ('f_getip' ) is not null )drop function f_getip go c
-
sqlserver中将varchar类型转换为int型再进行排序的方法
如果我们数据库的ID设置为varchar型的 在查询的时候order by id的话我们是不希望看到如下情况的. 我们可以把varchar转换为int 然后进行排序 一. 复制代码 代码如下: select * from yourtable order by cast(yourcol as int); 适用于SQLServer Oracle 二. 复制代码 代码如下: select * from yourtable order by convert(int,yourcol); 仅适用于SQLSe
-
一个函数解决SQLServer中bigint 转 int带符号时报错问题
有一个需求是要在一个云监控的状态值中存储多个状态(包括可同时存在的各种异常.警告状态)使用了位运算机制在一个int型中存储. 现在监控日志数据量非常大(亿级别)需要对数据按每小时.每天进行聚合,供在线报表使用. 状态分了3个级别:正常(0).警告(1).异常(2),聚合时需要使用max选择最差的状态,就需要对状态值进行处理加上级别和状态位个数,就要借助bigint型来做运算了, 问题是再将bigint 转为 int时获取原始状态值时,SQLServer报错了: 消息 8115,级别 16,状态
-
SQLServer中bigint转int带符号时报错问题解决方法
有一个需求是要在一个云监控的状态值中存储多个状态(包括可同时存在的各种异常.警告状态)使用了位运算机制在一个int型中存储. 现在监控日志数据量非常大(亿级别)需要对数据按每小时.每天进行聚合,供在线报表使用. 状态分了3个级别:正常(0).警告(1).异常(2),聚合时需要使用max选择最差的状态,就需要对状态值进行处理加上级别和状态位个数,就要借助bigint型来做运算了, 问题是再将bigint 转为 int时获取原始状态值时,SQLServer报错了: 消息 8115,级别 16,状态
-
escape函数解决js中ajax传递中文出现乱码问题
本文实例讲述了escape函数解决js中ajax传递中文出现乱码问题,分享给大家供大家参考.具体方法如下: 一.问题描述: 本来网页特效中的escape()是将中文按iso-8859-1字符集进行url编码的,那样通过 request.getparameter()是能直接获取到请求参数的,但后来的javascript将escape()换成了unicode字符集编 码,如此一来,在jsp教程和servlet中就没法直接拿到请求参数了,具体原因我也不知道. 二.解决办法: 1.首先对中文字符进行两次
-
C语言多种方法实现一个函数左旋字符串中K个字符
目录 前言 法一.将左旋1次这个动作执行k次 法二.多次逆序字符串 前言 今天看到一个有趣的笔试题:实现一个函数,可以左旋字符串中的k个字符.示例如下: ABCD左旋一个字符得到BCDA ABCD左旋两个字符得到CDAB 提示:以下是本篇文章正文内容,下面案例可供参考 法一.将左旋1次这个动作执行k次 这个方法的思路我来简单介绍一下: 现有1个字符串abcd 我们将a移出来,然后bcd前会空出一个位置 将bcd向前移动一个位置,最后把a放入最后一个位置,即可完成1次左旋 那么1次完成了,对于左旋
-
用JS编写一个函数,返回数组中重复出现过的元素(实例)
用JS编写一个函数,返回数组中重复出现过的元素,见下面的代码: var arr = [1, 2, 3, 1, 2, 3, 4, 5]; var getRepeat = function (arr) { var obj = {}; for (var i = 0, len = arr.length; i < len; i++) { if (obj[arr[i]] == undefined) { obj[arr[i]] = 1; } else { obj[arr[i]]++; } } for (var
-
解决Python中字符串和数字拼接报错的方法
前言 众所周知Python不像JS或者PHP这种弱类型语言里在字符串连接时会自动转换类型,如果直接将字符串和数字拼接会直接报错. 如以下的代码: # coding=utf8 str = '你的分数是:' num = 82 text = str+num+'分 | 琼台博客' print text 执行结果 直接报错:TypeError: cannot concatenate 'str' and 'int' objects 解决这个方法只有提前把num转换为字符串类型,可以使用bytes函数把int
-
在pycharm中使用matplotlib.pyplot 绘图时报错的解决
This application failed to start because it could not find or load the Qt platform plugin "windows" in " ". 百度谷歌了好久都没能解决这个问题都没能解决 开始我以为是缺少windows这个包,但是代码里并没有用到,所以我打断点去看代码到底问题出在哪里 发现问题出在matplotlib上面,我猜想是Qt和matplotlib版本不兼容导致的,于是我卸载了这两个插件
-
解决Tensorflow安装成功,但在导入时报错的问题
在Mac上按照官网教程安装成功tensor flow后,但在程序中导入时,仍然报错,包括但不限于以下两个错误.对于这种错误,原因主要在于Mac内默认的python库比较老了,即便通过pip命令安装了新的包,python也会默认导入默认位置的包.这时候需要做的就是删除,有冲突的包,对于以下两个错误,就是分别时numpy和six两个包冲突了. 可以在python命令行环境下,通过numpy.version和six.version两个命令查看当前版本,如果与预期的不一致,就可以删掉. 可以通过nump
-
解决mybatis-plus使用jdk8的LocalDateTime 查询时报错的方法
mybatis-plus使用jdk8的LocalDateTime 查询时报错: org.springframework.dao.InvalidDataAccessApiUsageException: Error attempting to get column 'update_time' from result set. Cause: java.sql.SQLFeatureNotSupportedException ; null; nested exception is java.sql.SQ
-
使用@Autowired注解引入server服务层方法时报错的解决
目录 @Autowired注解引入server服务层方法时报错 网上搜的方法:还行 JavaBean属性 方法 关于@Autowired 注解时发生的错误 1.解决 2.解决 @Autowired注解引入server服务层方法时报错 contentTypeService in com.example.demo001.controller.ContentTypeController required a bean of type 'com.example.demo001.service.Conte
随机推荐
- oracle执行update语句时卡住问题分析及解决办法
- Windows下Mysql启动报1067的解决方法
- android ListView 一些重要属性详解
- 在线播放器代码大全
- 使用as加载xml的示例
- VPS CentOS-6 下 LNMP HTTP web服务器的搭建步骤
- C#实现终止正在执行的线程
- oracle 9i使用闪回查询恢复数据库误删问题
- 深入浅出学习python装饰器
- C++封装线程类的实现方法
- 利用docker搭建php7和nginx运行环境全过程(官方镜像)
- AS3.0 实例学习 熟悉tween以及tweenEvent的运用
- 关于 byval 与 byref 的区别分析总结
- jQuery中table数据的值拷贝和拆分
- jquery.validate使用攻略 第五步 正则验证
- jquery maxlength使用说明
- Java8新特性之lambda的作用_动力节点Java学院整理
- Display SQL Server Login Mode
- C# 操作符之二 算数操作符
- 轻松实现php文件上传功能