有一个需求是要在一个云监控的状态值中存储多个状态(包括可同时存在的各种异常、警告状态)使用了位运算机制在一个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

转载于:https://www.cnblogs.com/yryz/p/3899004.html

SQLServer bigint 转 int带符号转换函数(原创)相关推荐

  1. inet_aton mysql_MySQL_IP处理函数inet_aton()和inet_ntoa()使用说明,MYSql的IP对int的转换函数 select i - phpStudy...

    IP处理函数inet_aton()和inet_ntoa()使用说明 MYSql的IP对int的转换函数 select inet_aton(ip) from table_name; 网络地址: 192. ...

  2. 计算机VB整除,【原创】VB中的整除运算和转换函数

    前言:[关于四舍五入]-- 实际上是相对小数部分<0.5 舍:=0.5 看整数部分,若为奇数则进,若为偶数则舍:>0.5 进 整除运算"\" 作用:用于对两个数进行除法 ...

  3. 在Sqlserver下巧用行列转换日期的数据统计

    在Sqlserver下巧用行列转换日期的数据统计 原文:在Sqlserver下巧用行列转换日期的数据统计 在Sqlserver下巧用行列转换日期的数据统计 前言 在SQLSERVER 中有很多统计函数 ...

  4. HIVE 的时间转换函数

    HIVE 的时间转换函数. 1,select unix_timestamp() 可以得到当前时间的时间戳. select unix_timestamp(时间格式) 可以得到当前时间的时间戳.两个时间戳 ...

  5. Go 学习笔记(47)— Go 标准库之 strconv(string/int 互相转换、Parse 字符串转换为指定类型、Format 指定类型格式化为字符串)

    参考: http://c.biancheng.net/view/5112.html 在实际开发中我们往往需要对一些常用的数据类型进行转换,如 string . int . int64 . float ...

  6. 初始化栈、入栈、出栈、栈空、数制转换函数和主函数,实现1348转换成8进制的功能。

    #include<stdio.h> //栈的顺序存储 #include<string.h> #include<stdlib.h> #include<mallo ...

  7. Python时间转换函数:时间转化为时间戳、时间戳转化为时间、当前日期、当前时间、星期几、前面或者后面多少天、年、月、日等

    Python时间转换函数:时间转化为时间戳.时间戳转化为时间.当前日期.当前时间.星期几.前面或者后面多少天.年.月.日等 #Python时间转换函数:时间转化为时间戳.时间戳转化为时间.当前日期.当 ...

  8. 写一个比较全的进制转换函数--ic

    //写一个比较全的进制转换函数-----未完成 #include <stdio.h> //D进制转换后 (比如10-2进制) 结果可能会很大 需要很长的字符串来存 #include < ...

  9. c语言英文字符转数字,C语言常用数字和字符串转换函数(国外英文资料).doc

    C语言常用数字和字符串转换函数(国外英文资料) C语言常用数字和字符串转换函数(国外英文资料) C language commonly used Numbers and string conversi ...

最新文章

  1. 黄浴:基于深度学习的超分辨率图像技术发展轨迹一览
  2. Android源码开发笔记 -- Android数据库,屏幕休眠时间
  3. 如何在win10环境下运行debug
  4. JTree用法及JTree使用经验总结转
  5. arch检验python_Python实现端口检测
  6. 服务器内存傲腾基本参数信息,服务器加傲腾内存
  7. SuperSocket与Netty之实现protobuf协议,包括服务端和客户端
  8. 解不等式之代数和不等式
  9. knn机器学习算法_K-最近邻居(KNN)算法| 机器学习
  10. 走近中医 感受神奇
  11. .net vue漂亮登录界面_基于 electron-vue 开发的音乐播放器「实践」
  12. new运算符与malloc函数区别
  13. linux db2v9.7卸载,db2 卸载和安装
  14. 1.关于Python,你可能不知道的
  15. selenium实现自动登录B站
  16. TFT-液晶显示屏的结构和原理
  17. 宽屏电脑应用不全屏显示问题
  18. 【devops】非必要 不要自建harbor 能力不足 真的被坑的服了 阿里云ACR不香吗?k8s接入ACR
  19. 第九届蓝桥杯JavaB组省赛真题
  20. 共模电感(扼流圈) 差模电感(扼流圈)

热门文章

  1. Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序
  2. linux alc权限,Linux账号管理与ALC权限设定(二)
  3. This is My frist Webo Happy!!!
  4. 为什么插入HDMI线,电脑的音响就没有声音了
  5. java计算机毕业设计ssm+vue电影评论网站
  6. hdu 4287 sdnu 1119 Intelligent IME
  7. 关于HTTP重定向至HTTPS
  8. 大球吞小球html5游戏在线玩,大球吃小球大作战
  9. ACM 广搜 Hero In Maze
  10. element-plus input组件iPad端禁用状态文字显示异常,看不见问题解决