mysql vs sql express服务器(十六进制-> bigint和bigint->十六进制转换) [英] Mysql vs sql express server (HEX -> bigint and bigint -> HEX conversion)

查看:256
本文介绍了mysql vs sql express服务器(十六进制-> bigint和bigint->十六进制转换)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是SQL Express服务器的新手,正在尝试将HEX转换为bigint,再次将bigint转换为HEX.但是,我注意到MySQL和SQL Express服务器计算得出的结果不同.

I am new to the SQL express server and trying to convert HEX to bigint and bigint to HEX again. However, I noticed that MySQL and SQL express server calculations give different results.

十六进制到bigint :

MySQL:

SELECT CONV('DA346CC793AD1510',16,10);

输出:

15723311803489129744

SQL Express :

SELECT CAST(CONVERT(VARBINARY(MAX), 'DA346CC793AD1510', 2) AS BIGINT); 

输出:

-2723432270220421872

为什么MySQL和SQL Express服务器给出不同的输出?从数学的角度来看,它必须是相同的.

Why MySQL and SQL express servers give different outputs? From a mathematical point of view, it must be the same.

但是,在MySQL和SQL Express服务器中,从bigint到HEX的转换都得到相同的结果.

However, bigint to HEX conversion in both MySQL and the SQL express servers give the same result.

MySQL :select conv(column_name,10,16);

SQL Express select FORMAT(column_name,'X');

在SQL Express服务器中将HEX转换为bigint并将bigint转换为HEX的正确方法是什么?我想念什么吗?

What is the right way in the SQL express server to convert HEX to bigint and bigint to HEX? Am I missing something?

推荐答案

为什么MySQL和MySQL Express服务器给出不同的输出?从数学的角度来看,它必须是相同的."

"Why MySQL and SQL express servers give different outputs? From a mathematical point of view, it must be the same."

BIGINT upper range is 2 to power 63 - 1:

 9,223,372,036,854,775,807   -- upper range of BIGINT
15,723,311,803,489,129,744   -- converted "DA346CC793AD1510" value

BIGINT无法存储该值,只会溢出:

BIGINT cannot store such value and simply overflows:

9,223,372,036,854,775,807 -> (overflow) -> starting from the lowest value (-9,223,372,036,854,775,808) + (15,723,311,803,489,129,744 - 9,223,372,036,854,775,807) -> -2,723,432,270,220,421,872

这篇关于mysql vs sql express服务器(十六进制-> bigint和bigint->十六进制转换)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆