1

J'ai fait quelques calculs en utilisant la fonction et ai la valeur suivante. Je veux diviser cette valeur par 1000.Comment puis-je convertir un varchar contenant un nombre en notation scientifique en un numérique dans SQL Server?

1.83673e+006 

Je veux convertir la valeur en numérique.

Lorsque je tente de le convertir en numérique, il jette

Erreur de conversion nvarchar type de données numérique.

Est-il possible de convertir cette valeur en numérique? Aidez-moi s'il vous plaît à obtenir ceci.

Merci à l'avance

+0

Quelle version de SQL Server? – alroc

+0

sql server 2012 – DineshDB

Répondre

2

l'essayer

SELECT CONVERT(numeric(16,0), CAST(1.83673e+006 AS FLOAT)) 
1

Dans SQL Server, la notation scientifique (...+e...) est utilisé uniquement pour les types de données à virgule flottante, et non pour les types de données décimales/numériques. Par conséquent, SQL Server reconnaît ce format uniquement lors de la conversion en un type de données à virgule flottante (tel que float ou real), et non lors de la conversion directe en numeric.

De toute évidence, rien ne vous empêche de convertir la valeur à float d'abord, puis à numeric:

SELECT CONVERT(numeric(19,4), CONVERT(float, '1.83673e+006')) 

cède 1836730.0000.

0

Juste essayer

Declare @data varchar(100)='1.83673e+006' 
SELECT @data=CAST(CAST(@data AS float) AS NUMERIC)/1000 
SELECT @data Result 


Result 
1836.730000