Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2008与国际货币_Sql_Sql Server 2008_Formatting_Currency_Iso - Fatal编程技术网

SQL Server 2008与国际货币

SQL Server 2008与国际货币,sql,sql-server-2008,formatting,currency,iso,Sql,Sql Server 2008,Formatting,Currency,Iso,我构建的一个应用程序被我们的组织在全球范围内使用,需要支持几种不同的货币。SQL Server在处理“普通”东西(即英镑符号、欧元符号)方面做得很好,但当我为沙特里亚尔(Saudi Riyal)ي1575;لSAR)引入符号时,它将其存储为问号 客户端100%使用jQuery/javascript处理支持REST的WCF服务 我偶然发现了一些关于本地EID的事情 希望有人能对此有所帮助。将字符串格式化为nVarchar。如果它们位于表中的字段中,请更改数据类型。如果它们只是动态格式化,请使用N前

我构建的一个应用程序被我们的组织在全球范围内使用,需要支持几种不同的货币。SQL Server在处理“普通”东西(即英镑符号、欧元符号)方面做得很好,但当我为沙特里亚尔(Saudi Riyal)ي1575;لSAR)引入符号时,它将其存储为问号

客户端100%使用jQuery/javascript处理支持REST的WCF服务

我偶然发现了一些关于本地EID的事情

希望有人能对此有所帮助。

将字符串格式化为nVarchar。如果它们位于表中的字段中,请更改数据类型。如果它们只是动态格式化,请使用N前缀。nVarchar是unicode,它是一个扩展的国际字符集

例如:

SELECT 'ريال'

select N'ريال'
在我的系统上,第一个显示???,第二个正确显示符号

编辑

如果字符输入为varchar,您仍然会遇到问题

见下例:

DECLARE @t nvarchar(10) = N'ريال'
DECLARE @x nvarchar(10) = 'ريال'

SELECT @t
SELECT @x
将字符串格式化为nVarchar。如果它们位于表中的字段中,请更改数据类型。如果它们只是动态格式化,请使用N前缀。nVarchar是unicode,它是一个扩展的国际字符集

例如:

SELECT 'ريال'

select N'ريال'
在我的系统上,第一个显示???,第二个正确显示符号

编辑

如果字符输入为varchar,您仍然会遇到问题

见下例:

DECLARE @t nvarchar(10) = N'ريال'
DECLARE @x nvarchar(10) = 'ريال'

SELECT @t
SELECT @x


请向我们展示您尝试过但未按预期工作的代码。这里没有太多代码可显示-至少我不确定您希望看到什么。SQL列是varchar,因此货币符号与金额一起存储。有一个很长的解释,为什么符号不在一个单独的列中;必须是那样的好吧,JNK改变为nvarchar的解决方案会是这样的。对不起,它实际上已经是nvarchar了。请给我们看看你尝试过的代码,但没有达到预期效果。这里没有太多的代码要显示-至少我不确定你想要看什么。SQL列是varchar,因此货币符号与金额一起存储。有一个很长的解释,为什么符号不在一个单独的列中;必须是那样的好吧,JNK改变为nvarchar的解决方案是这样的。对不起,它实际上已经是nvarchar了。对于你的例子来说,这很好,但是在列名前面加N似乎不起作用。i、 e.从[SomeTable]中选择N[Value],其中[Id]=blahblahblah此列的数据类型为nvarchar。@Randall-看起来数据输入字段的方式可能有问题。请看编辑。@Randall:我想问题是:你用什么语句试图将值输入nvarchar列,你用什么语句试图读取并显示它。我知道你们两个会想揍我。起初我是对的。1.该列为varchar而不是nvarchar。2.我把它改成了nvarchar来试试。3.我明白你说的2不工作。4.我真的不是无能!我只是在列的数据类型上犯了一个错误-这个数据库非常大,很容易混淆。获取值的语句是标准的sql insert,而获取值的语句是标准的select。我还是不明白你想看什么代码。你想见我爸爸吗?我的存储过程?对于您的示例来说,这很好,但是将N放在列名前面似乎不起作用。i、 e.从[SomeTable]中选择N[Value],其中[Id]=blahblahblah此列的数据类型为nvarchar。@Randall-看起来数据输入字段的方式可能有问题。请看编辑。@Randall:我想问题是:你用什么语句试图将值输入nvarchar列,你用什么语句试图读取并显示它。我知道你们两个会想揍我。起初我是对的。1.该列为varchar而不是nvarchar。2.我把它改成了nvarchar来试试。3.我明白你说的2不工作。4.我真的不是无能!我只是在列的数据类型上犯了一个错误-这个数据库非常大,很容易混淆。获取值的语句是标准的sql insert,而获取值的语句是标准的select。我还是不明白你想看什么代码。你想见我爸爸吗?我的存储过程?