当前位置: 首页 > 面试题库 >

从UniqueIdentifier转换为BigInt然后返回?

潘弘壮
2023-03-14
问题内容
declare @uu uniqueidentifier =  'C50B0567-F8CC-4219-A1E1-91C97BD9AE1B'
select @uu
declare @zaza bigint = ( select convert(bigint, convert (varbinary(8), @uu, 1)) )
select @zaza
select CONVERT( uniqueidentifier , convert( varbinary(16) , @zaza , 1 ) )

我以为我有一种快速的方法来将“唯一标识符”值转换成Big
Int,然后再转换回来。但是在我的第二次转换中有一个问题。任何人都可以评论将GUID完全转换为数字并返回的正确方法吗?当我尝试将其从数字表示形式转换回其原始GUID时,我只是得到了GUID的一部分,而不是全部。

我想将一个整数(我认为它将在MSSQL中归类为“ Large BigInt”?)传递给远程系统,仅使用字符0-9,并且仍然获得NewId()的随机唯一性。


问题答案:

您的第二次转换没有问题。当我在SQL Management Studio中运行您的SQL语句时,我得到:

------------------------------------
C50B0567-F8CC-4219-A1E1-91C97BD9AE1B

(1 row(s) affected)


--------------------
7423352504965404994

(1 row(s) affected)


------------------------------------
C50B0567-F8CC-4219-0000-000000000000

(1 row(s) affected)

由于您要将8字节的值转换为16字节的guid,因此guid的一半将为零,这正是您所看到的。



 类似资料:
  • 问题内容: 我需要将JSONArray对象存储为字符串,然后检索该字符串并将其转换回JSONArray。 如果我做: 我会找回同一个物体吗? 我正在尝试将JSONArray存储在SQLite数据库中。 这就是我在看的东西。http://developer.android.com/reference/org/json/JSONArray.html#toString() 问题答案: 只要它是一个有效的

  • 问题内容: 在SQL 9(2005)中创建了一个存储过程,此后已升级到SQL 10(2008)。从那时起,以下存储过程停止工作并引发上述错误: 传入的参数@vPortalUID包含:2A66057D-F4E5-4E2B-B2F1-38C51A96D385。我执行这样的存储过程: 它跌倒了。我也尝试过转换。仍然没有喜悦。也具有将{}括起来的价值。我如上所述以编程方式和手动方式删除了这些内容。 如果您

  • 更多信息: 我有一个hibernate存储库,如下所示- Hibernate以某种方式将(在where子句中)作为,而SAMPLE_TABLE将这个id字段作为,因此会引发类型不匹配问题。 字段在这里定义为long。 Edit-2如果有人得到这样的问题,很可能他在查询中传递了null值。

  • 问题内容: 我需要在两台机器之间发送一些变量的值,并打算使用套接字来实现。我使用md5哈希算法作为发送数据的校验和,以确保正确传输数据。要执行md5哈希算法,我必须将数据转换为字节。我想同时传递变量的名称及其值。因为我有很多变量,所以我使用字典。 所以我想将类似的东西转换为字节? 换句话说,我有一个字典,里面有很多不同的数据类型,包括列表,列表又有多种不同的数据类型,我想将其转换为字节。然后在接收

  • 标题说明了一切: null 编辑:工作示例要简单得多(多亏了@T.S.): 谢谢!

  • 问题内容: 整个早晨,我一直在用头撞墙。 以下SQL代码及其结果对我来说没有意义: 结果是: 什么?为什么结果不等于我的原始整数? 我的整个目标是将整数转换为字节并将这些字节存储到数据库中,但是却没有使这个基本示例正常工作。谁能解释我在做什么错? 顺便说一句,我正在使用Sql Server 2005(9.0.4340) 问题答案: 正如我在较早的评论中所指出的,2,691,485,888比廉政局所