如何在SQL Server中将大十进制转换为varchar?

时间:2018-12-28 16:22:15

标签: sql-server type-conversion

假设我有一个名为 Users 的表,如下所述:

SomeNumber       FName    LName  
``````````       `````    ``````  
1.2345678e+014   John     Doe  
2.2345678e+014   Tony     Stark  

如何将SomeNumber列转换为varchar值?就像在列中不应该显示e + 014一样。 SomeNumber列的实际值为123456789JD234567890TS

我尝试了以下方法,但没有一个起作用。

CONVERT(varchar, [SomeNumber])
CAST([SomeNumber] as varchar)
Try_Parse([SomeNumber] as varchar)

预期输出应采用以下格式:

SomeNumber      FName    LName  
``````````      `````    ``````  
123456789JD     John     Doe  
234567890TS     Tony     Stark    

PS: SomeNumber 列的类型为nvarchar(255)

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

对不起,我的第一个答案我很抱歉无法阅读您的查询。

DECLARE @id varchar(max) = '1.2345678e+014' 
select CAST(@id as float) 

结果: 123456780000000

其他添加:

DECLARE @id varchar(max) = '1.2345678e+014' 
select CAST(CAST(CAST(@id as float) AS bigint) AS VARCHAR(MAX)) + 'Letters' --Conversion takes place