Oracle 添加年份并移动到最后一天
某些事件需要在年底前发生,而这一年距离上一次事件已经10年了。我发出这样的查询来计算截止日期:Oracle 添加年份并移动到最后一天,oracle,oracle10g,Oracle,Oracle10g,某些事件需要在年底前发生,而这一年距离上一次事件已经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-5
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
例如:
到目前为止我的工作还不错,但是。。。我是否缺少一些可以使查询更具可读性的函数?您可以使用trunc以便
SELECT add_months(trunc(sysdate, 'YYYY'), 12*11) - (1/86400) from dual
(1/1440)比11年缩短了一秒,给你23:59:59是的,对不起,1440是分钟,86400是秒
SELECT add_months(trunc(sysdate, 'YYYY'), 12*11) - (1/86400) from dual