У меня ниже кода PLSQL, который находит эпоху в течение последнего месяца в тот же день, однако она терпит неудачу, когда я запускаю ее на конец месяца в течение 31 и 01 дня.Как найти эпоху для последнего месяца того же дня?
SET serveroutput ON
DECLARE
vDay VARCHAR2(30) := '&Enter_current_day';
vDate VARCHAR2(30);
vEpoch NUMBER;
BEGIN
vDate := TO_CHAR(sysdate, 'MM')||'-'||vDay||'-'||TO_CHAR(sysdate, 'YYYY');
vEpoch := (ADD_MONTHS(TO_DATE(vDate, 'MM-DD-YYYY HH24:MI:SS'), -1) - TO_DATE('01/01/1970 00:00:00', 'MM-DD-YYYY HH24:MI:SS')) * 24 * 60 * 60;
vDate := TO_DATE(vDate, 'MM-DD-YYYY HH24:MI:SS');
dbms_output.put_line('Current Date: '||to_number(vDay)||' Epoch: '||vEpoch||' Date: '||vDate);
END;
e.g. если на сегодняшний день нет,
A. 30-Sep and if I enter '31' then it should return epoch for the 01-Sep
B. 30-Sep and if I enter '01' then it should return epoch for the 01-Sep
C. 30-Mar and if I enter '31' then it should return epoch for the 01-Mar
D. 30-Mar and if I enter '01' then it should return epoch for the 01-Mar
для случаев B и D, вы действительно хотели первую часть месяца? Разве это не последний день месяца? – Boneist