1
我有一个表应该是nvarchar(8)
,但意外存储为bigint (8 bytes)
。数据现在正在运行。 我需要将bigint
数值转换为预期的nvarchar(8)
字符串。例如 列值应该是'MOLASSES',但实际上是数值5570755107535144275
。SQL Server将nvarchar转换为Big Int并返回到nvarchar
任何人都可以帮忙吗?
我有一个表应该是nvarchar(8)
,但意外存储为bigint (8 bytes)
。数据现在正在运行。 我需要将bigint
数值转换为预期的nvarchar(8)
字符串。例如 列值应该是'MOLASSES',但实际上是数值5570755107535144275
。SQL Server将nvarchar转换为Big Int并返回到nvarchar
任何人都可以帮忙吗?
要将bigint转换回varchar,请先将其转换回二进制值。
http://sqlfiddle.com/#!6/3e91f/2
CREATE TABLE BYTESTREAM(VALUE BIGINT NOT NULL);
INSERT INTO BYTESTREAM VALUES (5570755107535144275);
SELECT VALUE
, CONVERT(VARBINARY(8), VALUE)
, CONVERT(VARCHAR(8), CONVERT(VARBINARY(8), VALUE))
FROM BYTESTREAM
谢谢你。我现在看看解决方案,并认同它很明显。 – user3049876
你不能适合5570755107535144275到8个字符 – Takarii
一个nvarchar场我Takarii同意,而且要列从优化搜索的数据类型转换为字符串任何关节原因。你期待Unicode数据吗? –
当潜在的帮助出现诸如“你为什么要这样做?”之类的问题之前,我经常会感兴趣。等等。它的好处在于提供的帮助将取决于要求的原因。 – user3049876