2010-06-20 6 views
1

Je voudrais convertir/transtyper int ou bigint en varchar (en tsql).Serveur Sql convertir/cast int en varchar indépendant du langage db/collation

Mais je voudrais qu'il soit en anglais quelle que soit la langue de base de données, collation, etc. (je dois l'analyser de nouveau sur le côté client)

Fondamentalement, je suis à la recherche d'équivalent tsql de ce code C# 1234 .ToString (CultureInfo.InvariantCulture)

Que dois-je faire? Cette langue est-elle indépendante? convertir (varchar, 1234)

+1

un nombre sera toujours utiliser les chiffres «anglais» (ils sont en fait des chiffres hindou-arabes!); voulez-vous dire le formatage de numéro anglais américain? –

+0

Oui, fondamentalement, je cherche l'équivalent tsql de ce code C# 1234.ToString (CultureInfo.InvariantCulture) afin que je puisse l'analyser plus tard – john

Répondre

3

Je suis assez sûr que CONVERT(varchar, some_int) est invariant de culture.

La même chose est pas vrai pour l'argent ou datetime

+1

Je pense aussi. mais la documentation ne dit rien à ce sujet. J'ai pensé mieux à demander. – john

+0

@john J'essayais de trouver de meilleures informations à ce sujet et de mettre en place un test/démo pour vous sur http://odata.stackexchange.com - mais je pense que SET LANGUAGE n'affecte que tellement de choses, même avec des conversions d'argent. –

2

Pour int, CAST ou CONVERT de base ne sera pas ajouter des séparateurs

pour la coulée de retour, c'est OK 1234567 mais ceux de la culture ne sont pas assortis : 1,234,567 ou 1'234'567 ou 1.234.567. Et vous ne pouvez pas générer ce dernier dans T-SQL proprement de toute façon

Questions connexes