为什么GUID uniqueidentifier显示价值略有不同

时间:2010-12-14 15:36:00

标签: c# database sybase

我们有一个user表,userId是Sybase数据库中的uniqueidentifier类型。我们输入的值是来自C#应用程序的GUID值。当我们通过Sybase工具查看表时,该值显示为3835FD60-ACDE-4345-99AB-54263E9A07AE。当我们将该字段复制/粘贴到文本文件时,它显示为0x3835fd60acde434599ab54263e9a07ae。当我们使用odbc(在python中)访问该字段时,生成(Hex)字符串为 3835FD60ACDE434599AB54263E9A07AE

为什么它显示不同? 感谢

2 个答案:

答案 0 :(得分:8)

Guid只是一组字节;它不是一个字符串。与整数123相同的不是字符串“123”。有多种方法可以将其显示为人类可读的字符串。您可以使用Guid.ToString(string)格式说明符选择格式:http://msdn.microsoft.com/en-us/library/97af8hh4.aspx

简单地说:他们选择使用不同的格式。 Guid是一样的。

答案 1 :(得分:1)

通常,UUID / GUID值存储为128位整数,因此任何显示格式都有效。我们在引用UUID或GUID时习惯的格式化显示只是将该128位整数转换为方便的字符串格式。

在Python中,您应该能够将值传递给uuid.UUID类,以便获取UUID对象,然后可以按照惯例格式对其进行格式化。