计算DevExpress内的日期差异

问题描述 投票:0回答:1

我们使用第三方软件使用DevExpress构建报告。通常在Oracle上 - 我可以通过简单地减去日期来轻松获得日期差异:

TRUNC(sysdate) - TRUNC(a.birth_date) AS datediff

我在DevExpress中使用了相同的逻辑:

CAST(CAST(CURRENT_DATE AS VARCHAR(9)) AS DATE) - CAST(CAST(a.birth_date AS VARCHAR(9)) AS DATE) AS datediff

但这样做会给我这个错误信息:

从“十进制”到“日期时间”的无效演员表。无法在DATEDIFF列中存储<35>。 预期类型是DateTime。

我该如何解决?


笔记:

  • 这里有很多演员,但这只是一个解决办法,因为TRUNC不起作用所以我基本上只是铸造到VARCHAR基本上删除时间部分并将其投回到DATE字段。
  • CURRENT_DATE相当于DevExpress世界中的SYSDATE
oracle date datetime devexpress datediff
1个回答
0
投票

看起来最简单的解决方案是将结果转换为decimal

CAST(CAST(CAST(CURRENT_DATE AS VARCHAR(9)) AS DATE) - CAST(CAST(a.birth_date AS VARCHAR(9)) AS DATE) AS DECIMAL) AS datediff
© www.soinside.com 2019 - 2024. All rights reserved.