计算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内的日期差异的主要内容,如果未能解决你的问题,请参考以下文章