TSQL将newid转换为十进制(38,0)



我想将newid()输出转换为十进制(需要最小空间)

到目前为止,我这样做了:

SELECT  CAST( '0x'+REPLACE(CAST(NEWID() AS VARCHAR(50)), '-', '' ) AS DECIMAL(38,0) )

但是我得到这个错误:

将数据类型varchar转换为数字时出错。

找了很多,但很沮丧,来到这里寻求帮助。

提前感谢。


update: decimal(8,0)变成decimal(38,0),仍然得到相同的错误

这是一个xy问题。

guid的正确数据类型是uniqueidentifier。没有必要自己将其转换为数字数据类型。

uniqueidentifier以16字节二进制格式存储,而不是显示的char(36)字符串

相关内容

  • 没有找到相关文章

最新更新