You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server FORMAT函数返回克罗地亚旧货币符号,如何获取正确欧元符号?

解决SQL Server FORMAT函数返回克罗地亚旧货币符号的问题

问题原因

SQL Server的FORMAT函数依赖Windows操作系统的区域设置数据,而Windows Server 2016默认的区域数据未包含克罗地亚2023年改用欧元的更新,因此调用FORMAT(1, 'C', 'hr-HR')时返回旧货币符号kn。

解决方案

方案1:更新Windows Server 2016系统区域数据

  • 安装Windows Server 2016的最新累积更新(LCU):微软会在系统更新中推送区域设置的变更(包括货币符号更新),确保服务器安装所有可用的Windows更新。
  • 验证并修改区域设置:更新完成后,打开控制面板 > 区域,选择克罗地亚(hr-HR)区域,检查货币符号是否已变为€。若未自动更新,手动修改货币符号为€后保存设置。
  • 重启SQL Server服务:让SQL Server读取更新后的系统区域数据,之后再执行FORMAT函数即可返回正确结果。

方案2:自定义格式化字符串(无需系统更新)

如果暂时无法更新系统,可以绕过系统区域限制,手动拼接符合要求的格式:

-- 先按hr-HR格式格式化数字,再追加欧元符号
SELECT CONCAT(FORMAT(1, 'N2', 'hr-HR'), ' €')

执行结果为:1,00 €,完全符合需求。

方案3:使用CLR自定义函数(进阶)

若需要频繁使用符合最新区域标准的格式化,可创建CLR自定义函数,基于更新的.NET版本(如.NET 6+)的区域数据实现格式化,但需要开启SQL Server的CLR支持,适合有开发能力的场景。

内容的提问来源于stack exchange,提问作者hoggar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 06:30:16