一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫(kù)技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫(kù) - Sql Server - 一個(gè)函數(shù)解決SQLServer中bigint 轉(zhuǎn) int帶符號(hào)時(shí)報(bào)錯(cuò)問(wèn)題

一個(gè)函數(shù)解決SQLServer中bigint 轉(zhuǎn) int帶符號(hào)時(shí)報(bào)錯(cuò)問(wèn)題

2020-04-03 16:10hebedich Sql Server

這篇文章主要介紹了解決SQLServer中bigint 轉(zhuǎn) int帶符號(hào)時(shí)報(bào)錯(cuò)問(wèn)題的函數(shù),需要的朋友可以參考下

有一個(gè)需求是要在一個(gè)云監(jiān)控的狀態(tài)值中存儲(chǔ)多個(gè)狀態(tài)(包括可同時(shí)存在的各種異常、警告狀態(tài))使用了位運(yùn)算機(jī)制在一個(gè)int型中存儲(chǔ)。

現(xiàn)在監(jiān)控日志數(shù)據(jù)量非常大(億級(jí)別)需要對(duì)數(shù)據(jù)按每小時(shí)、每天進(jìn)行聚合,供在線報(bào)表使用。
狀態(tài)分了3個(gè)級(jí)別:正常(0)、警告(1)、異常(2),聚合時(shí)需要使用max選擇最差的狀態(tài),就需要對(duì)狀態(tài)值進(jìn)行處理加上級(jí)別和狀態(tài)位個(gè)數(shù),就要借助bigint型來(lái)做運(yùn)算了,

問(wèn)題是再將bigint 轉(zhuǎn)為 int時(shí)獲取原始狀態(tài)值時(shí),SQLServer報(bào)錯(cuò)了:

消息 8115,級(jí)別 16,狀態(tài) 2,第 1 行
將 expression 轉(zhuǎn)換為數(shù)據(jù)類型 int 時(shí)出現(xiàn)算術(shù)溢出錯(cuò)誤。

因?yàn)闋顟B(tài)碼中已經(jīng)用到了 0x80000000, 出現(xiàn)了符號(hào)位的問(wèn)題。
寫了一個(gè)轉(zhuǎn)換函數(shù)解決了。

?
1
2
3
4
5
6
7
8
9
10
11
12
CREATE FUNCTION [dbo].[BigintToInt]
(
   @Value bigint
)
RETURNS int
AS
BEGIN
   -- 是否有int符號(hào)位
   IF @Value & 0x80000000 <> 0 RETURN @Value & 0xFFFFFFFF | 0xFFFFFFFF00000000
   -- 無(wú)符號(hào)位
   RETURN @Value & 0xFFFFFFFF
END

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产欧美久久久精品影院 | 国产成人小视频在线观看 | 午夜福利合集1000在线 | 小舞丝袜调教喷水沦为肉奴 | 免费观看无人区完整版 | 香蕉91视频 | 国产第一草草影院 | 天堂bt在线| 福利久草 | 亚洲精品国产A久久久久久 亚洲精品福利一区二区在线观看 | 日韩在线天堂免费观看 | 175m美女被网友灌醉啪啪玩脚 | 无码射肉在线播放视频 | 女人张开腿 让男人桶个爽 免费观看 | 高清不卡日本v在线二区 | 日韩大片在线播放 | 久久久精品国产免费A片胖妇女 | 国产ab| 九九九九在线视频播放 | 国产精品午夜久久 | 日本美女视频韩国视频网站免费 | 乌克兰粉嫩摘花第一次 | 扒开大腿狠狠挺进视频 | 国产精品久久久久久久久免费观看 | 国产人妖xxxxx免费看 | 高h喷水荡肉爽文np肉色文 | 波多野结衣中文字幕在线 | 色屁屁www | 青草青青在线 | 免费老外的毛片清高 | 亚洲国产三级在线观看 | 日本高h | 四虎永久免费在线观看 | 高清黄色直接看 | 狠狠色成人综合网图片区 | 插鸡视频在线观看 | 国产一级毛片潘金莲的奶头 | 啪一啪日一日 | 日韩一级在线观看 | 日韩一级片在线播放 | 午夜人妻理论片天堂影院 |