【发布时间】:2020-06-03 08:34:49
【问题描述】:
我正在使用 Oracle 11g,但在查找两个日期(系统日期)和某个日期变量之间的天数差异时遇到了问题。然后将差值乘以另一个数字。以下是我尝试过但一直返回负值的两种方法。
新分配的return_date 变量具有正确的值。
提前感谢您的帮助!
UPDATE borrowed_books
SET penalty_fine = (TO_DATE(sysdate, 'dd-mm-yyyy') - TO_DATE(return_date, 'dd-mm-yyyy')) * 20,
return_date = SYSDATE
WHERE patron_id = patID AND
transaction_id = transID;
UPDATE borrowed_books
SET penalty_fine = (sysdate - return_date) * 20,
return_date = SYSDATE
WHERE patron_id = patID AND
transaction_id = transID;
【问题讨论】:
-
从不,永远不要在已经是日期的值上调用
to_date()。这将首先将date值转换为varchar,然后将varchar转换回最初的date。 -
感谢您的建议!非常感谢