Tsql SQL Server将nvarchar转换为大整数并返回到nvarchar

Tsql SQL Server将nvarchar转换为大整数并返回到nvarchar,tsql,type-conversion,Tsql,Type Conversion,我在一个表上有一列,它应该是nvarchar(8),但意外地被存储为bigint(8字节)。数据现在是实时的。 我需要将bigint数值转换为预期的nvarchar(8)字符串。 例如,列值应为“糖蜜”,但实际上是数值5570755107535144275 有人能帮忙吗?要将bigint转换回varchar,请先将其转换回二进制值 您无法将5570755107535144275放入8个字符的nvarchar字段中。我同意Takarii的观点,此外,您希望将列从优化的可搜索数据类型转换为字符串的

我在一个表上有一列,它应该是
nvarchar(8)
,但意外地被存储为
bigint(8字节)
。数据现在是实时的。 我需要将
bigint
数值转换为预期的
nvarchar(8)
字符串。 例如,列值应为“糖蜜”,但实际上是数值
5570755107535144275


有人能帮忙吗?

要将bigint转换回varchar,请先将其转换回二进制值


您无法将5570755107535144275放入8个字符的nvarchar字段中。我同意Takarii的观点,此外,您希望将列从优化的可搜索数据类型转换为字符串的任何特定原因。您是否需要Unicode数据?当潜在的帮助前面出现诸如“为什么要这样做?”等问题时,我经常感到好奇。似乎提供帮助将取决于要求的原因。数据以字节流的形式提供。此特定数据项旨在解释为8个字符的字符串。使用nvachar而不是varchar的原因很简单,因为生成的数据将通过任何数量的SYSTE4M读取。不可选择更改nvarchar目标的数据格式-如上所述,生成的数据是实时的。谢谢。我现在看到了解决方案,并同意这是显而易见的。
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