我想将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)
字符串