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

如何在RTF模板中将XDO生成的日期AM/PM转为小写?

把RTF模板日期的AM/PM转小写的解决方案

你遇到的SQL扩展和XSL函数不能混用的问题,BI Publisher确实有这个限制,直接用纯XSLT/xdoxslt函数就能搞定,给你两个可行的方法:

方法1:用translate()转大小写

直接对原日期格式的输出做字符串转换,把大写的AM/PM换成小写:

<?xdoxslt:translate(xdoxslt:format_date(xdoxslt:sysdate_as_xsdformat(), 'DD-MON-YYYY HH:MI:SS PM', 'en-US'), 'AMPM', 'ampm')?>

拆解一下逻辑:

  • xdoxslt:sysdate_as_xsdformat()先获取系统当前日期的标准XSD格式
  • xdoxslt:format_date()将其转换为你需要的DD-MON-YYYY HH:MI:SS PM格式
  • translate()函数直接替换字符,把A→a、M→m、P→p,一步转成小写的am/pm

方法2:直接用小写格式掩码(需确认版本支持)

部分BI Publisher版本支持用a代替PM作为格式掩码,直接输出小写的上午/下午标记,写法更简洁:

<?xdoxslt:format_date(xdoxslt:sysdate_as_xsdformat(), 'DD-MON-YYYY HH:MI:SS a', 'en-US')?>

如果你的版本支持这个掩码,这是最省事的方案,不需要额外的字符串转换。

关于SQL和XSL函数不能混用的处理

既然BI Publisher禁止在同一个表达式里混用两类函数,有两种思路:

  • 全程使用XSLT/xdoxslt函数实现需求(就像上面的方法)
  • 如果必须依赖SQL处理日期,就把格式转换逻辑放到数据模型的SQL查询里,比如用TO_CHAR(sysdate, 'DD-MON-YYYY HH:MI:SS pm')生成带小写am/pm的日期字段,之后在RTF模板里直接引用该字段即可,无需在模板中编写函数逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 16:35:28