计算DevExpress内的日期差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算DevExpress内的日期差异相关的知识,希望对你有一定的参考价值。

我们使用第三方软件使用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
答案

看起来最简单的解决方案是将结果转换为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

以上是关于计算DevExpress内的日期差异的主要内容,如果未能解决你的问题,请参考以下文章

r 计算给定两个日期的日期差异

如何计算两个日期时间的月份差异? [重复]

计算Java中的日期差异

如何计算两个日期之间的差异

在 Swift 中计算两个日期之间的差异

绑定网格视图内的多列 devexpress 组合框