【发布时间】:2015-01-08 12:29:33
【问题描述】:
我在数据库的产品表中有有效期和生产日期(数据类型 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。不知道为什么?
【问题讨论】:
-
到目前为止你尝试了什么?
-
我尝试过 DATEDIFF() 函数,但它不适用于德比
-
你可以把它放在这里,这样我们就可以解决问题
-
select {fn timestampdiff(SQL_TSI_FRAC_SECOND,EXPIRY , MDATE)} as diff from PRODUCTS;这是我发现的一些相关的东西......它给了我两个日期之间的秒数...... -
我在这里找到了线索 [stackoverflow.com/questions/11511805/…