0

我想替换日期的小时数,例如,如果我有 07/07/13 11:15,我想从第一个日期获得 07/07/13 00:00。

所以,我想做的是:

textDate := TO_CHAR (auxDate, 'DD/MM/RR')||' '||textHour||':'||textMin;
endDate := TO_DATE(textDate, 'DD/MM/RR hh:mm');

当我运行 SP 时,它给了我以下错误:

ORA-01810: 格式代码出现两次

auxDate 被声明为 DATE,textDate 为 VARCHAR2(20),endDate 为 DATE。

你能帮我解决这个问题吗?

4

3 回答 3

1

你有一个 to_date 格式的错字。它必须是 mi 而不是 mm

endDate := TO_DATE(textDate, 'DD/MM/RR hh:mi');
于 2013-07-10T12:47:17.410 回答
0

将您的日期重置为午夜,然后添加所需的小时数和分钟数。

endDate := trunc(auxDate) + textHour/24 + textMin/24/60;
于 2013-07-10T12:25:10.957 回答
0
DECLARE
    textDate_YYYYMMDD VARCHAR2(8)  := '20130101';
    textDate_HH       VARCHAR2(2)  := '13';
    textDate_MM       VARCHAR2(2)  := '15';
    textDate_mask     VARCHAR2(14) := 'YYYYMMDDHH24MI';
    textDate          DATE         := TO_DATE(textDate_YYYYMMDD || textDate_HH || textDate_MM, textDate_mask);
BEGIN
    DBMS_OUTPUT.PUT_LINE(TO_CHAR(textDate, textDate_mask));
END;
/*
anonymous block completed
201301011315
*/
于 2013-07-10T13:02:21.427 回答