我想替换某个日期的小时,例如,如果我有 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。
你能帮我解决这个问题吗?
答案 0 :(得分:1)
你有to_date格式的拼写错误。它必须是mi而不是mm
endDate := TO_DATE(textDate, 'DD/MM/RR hh:mi');
答案 1 :(得分:0)
将日期重置为午夜,然后添加所需的小时数和分钟数。
endDate := trunc(auxDate) + textHour/24 + textMin/24/60;
答案 2 :(得分: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
*/