某事件需要在年度结束之前发生,这是自上一次事件发生以来的10年。我发出这样的查询来计算截止日期:
SELECT
:previous_date AS previous_date,
ADD_MONTHS(
TO_DATE(
EXTRACT(
YEAR FROM TO_DATE(:previous_date, 'YYYY-MM-DD HH24-MI-SS')
) || '-12-31 23-59-59', 'YYYY-MM-DD HH24-MI-SS'
), 12*10
) AS deadline
FROM DUAL
E.g:
PREVIOUS_DATE DEADLINE
------------- -------------------------
2008-07-15 31/12/2018 23:59:59
到目前为止,我的工作正常但是...我错过了一些可以使查询更具可读性的函数吗?
答案 0 :(得分:3)
您可以使用截断,以便获得
SELECT add_months(trunc(sysdate, 'YYYY'), 12*11) - (1/86400) from dual
(1/1440)在11年中取消了第二次,给你23:59:59