在查询中处理德比中的日期

handling dates in derby within query

我在数据库中的产品 table 中有有效期和生产日期(数据类型 DATE),我想应用以下公式来获得我想要的结果:

SELECT * 
  FROM products 
 WHERE (RecentDate - expiry / manufacturing - expiry) * 100 > = 70;

它会显示寿命超过 70% 以上的产品。

如何为此任务设计查询(我正在使用 Derby)。

我试过了,但没有成功

SELECT * FROM PRODUCTS
 WHERE ({fn TIMESTAMPDIFF(SQL_TSI_DAY, CURRENT_TIMESTAMP, EXPIRY)} / 
        {fn TIMESTAMPDIFF(SQL_TSI_DAY, MDATE, EXPIRY )}) * 100 > 70;

这两个timestampdiff的划分给出0.I不知道为什么?

下面的想法:

select * from  products 
where 
convert(float,DATEDIFF(dd,manufacturing,GETDATE()))/convert(float,DATEDIFF(dd,manufacturing,expiry))*100 > = 70;

玩了几个小时后,我整理了 query.Thanks 给所有帮助过我的人!
这是:

SELECT EXPIRY,MDATE FROM PRODUCTS WHERE cast( {fn TIMESTAMPDIFF( SQL_TSI_DAY,MDATE,CURRENT_TIMESTAMP)} as double) /cast( {fn TIMESTAMPDIFF( SQL_TSI_DAY,MDATE,EXPIRY )} as DOUBLE)*100 > 70 ;

解决方案是将 TIMESTAMPDIFF 投射为 DOUBLE.With 投射,它无法计算百分比..为什么,我也不是 sure.But 一些它是如何工作的 me.Any有知识的请做share.Cheers!