【问题标题】:Computing date difference from within DevExpress从 DevExpress 中计算日期差异
【发布时间】:2019-08-25 02:32:48
【问题描述】:

我们使用使用 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 列中。
预期类型为 DateTime。

我该如何解决这个问题?


注意事项:

  • 这里有很多转换,但这只是一种解决方法,因为TRUNC 不起作用,所以我基本上只是转换为VARCHAR,基本上删除时间部分并将其转换回@ 987654325@ 字段。
  • CURRENT_DATE 相当于 DevExpress 世界中的 SYSDATE

【问题讨论】:

    标签: oracle date datetime devexpress datediff


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多