【问题标题】:How to do arithmetic operation in TDE如何在 TDE 中进行算术运算
【发布时间】:2021-05-26 10:46:03
【问题描述】:

我需要获取日期字段之一的上一个日期,因为我在 TDE 中执行以下操作。但是我在这个操作上遇到了错误。我怎样才能做到这一点

<tde:column>
<tde:name>PreStartDate</tde:name>
<tde:scalar-type>date</tde:scalar-type>
<tde:val>(hdm:StartDate - xs:dayTimeDuration("P1D"))</tde:val>
<tde:nullable>true</tde:nullable>
</tde:column>

【问题讨论】:

  • 显示什么错误?您是否尝试过根据示例文档从 QConsole 测试您的 TDE?如果您没有将 XML Schema 加载到指定其类型的 MarkLogic 中,您可能需要将 StartDate 元素的值转换为 xs:date 或 xs:dateTime。
  • hdm:StartDate 已经是日期格式

标签: marklogic marklogic-dhf


【解决方案1】:

我看到您的评论指出hdm:StartDate 已经是日期格式。然而,正如所写,您所拥有的是一个看起来像日期的字符串(嗯,更准确地说是untypedAtomic)。需要先将其转换为实际的日期类型,然后才能从中减去dayTimeDuration

<tde:column>
  <tde:name>PreStartDate</tde:name>
  <tde:scalar-type>date</tde:scalar-type>
  <tde:val>(xs:date(hdm:StartDate) - xs:dayTimeDuration("P1D"))</tde:val>
  <tde:nullable>true</tde:nullable>
</tde:column>

【讨论】:

  • 谢谢。它成功了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 2019-04-30
  • 1970-01-01
相关资源
最近更新 更多