【发布时间】:2025-11-22 11:35:01
【问题描述】:
对于将 SAPB1 与 HanaDB 结合使用的客户,我们执行相同的查询以提取数据(使用 ADO.NET 接口)。有些有他们的区域系统系统,这些系统似乎可以根据他们的语言环境等控制数字格式。
例如执行时说:SELECT RDR1."Quantity" FROM RDR1
- 对于美国的客户,RDR1."Quantity" = 2.000000
- 对于德国的客户,RDR1."Quantity" = 2,000000(注意逗号与小数)
我假设该值的实际数据库存储是相同的,只是查询引擎根据设置应用默认系统格式,使最终结果以一种或另一种方式格式化。
现在,可以使用蛮力方法对每列进行这种类型的更改:
REPLACE(CAST(ROUND(RDR1."Quantity",2) AS DECIMAL(10,2)), ',', '.') AS "Quantity”
给我“2.00”
但是,我们有很多这样的列,我们希望使代码在所有情况下都可用,而不是为不同区域提供相同查询的多个实例——而且似乎应该有一种方法来告诉查询引擎返回值,就好像它在美国一样,并忽略默认的系统区域设置和货币设置。
问题:是否可以进行高级设置更改而不是按列格式化/转换 - 使用 Hana SQL 查询代码(如会话变量或其他东西)或连接设置,当我们建立与 HanaDB 的 ADO.NET 连接,这将使值像在美国一样出现?
我还没有找到任何东西,但在如何处理它的文档中可能不太容易找到。
【问题讨论】:
标签: hana sapb1 hana-sql-script