2
我将一些计算从FORTRAN转换为PL/SQL。 请让我解释一下:减去2日期PL/SQL但日期之一是0
在我的Oracle数据库表中,我有两个属性的以下日期值。
attribute1: '01/01/0001', This is a date not a string.
attribute2: '08/24/1918', This is a date not a string.
我所试图做的是,如果ATTRIBUTE1等于01/01/0001' ,然后将其转换成00/00/0000再减去attribute2就像下面的代码:
//Decode missing for '01/01/0001'
select round((to_date('01/01/0001', 'mm/dd/yyyy') - to_date('01/24/1918', 'mm/dd/yyyy'))/365.25, 3)as dt from dual;
FORTRAN代码正在做的是将'01/01/0001'转换为'0/0/0',然后进行减号操作。像这样,
round((('0/ 0/ 0' - '08/24/1918')/365.25), 3). Round to the 3 decimal place.
我知道我错过了在PL/SQL代码解码上述转换'01/01/0001,基本上为零。
运行PL/SQL代码,您将得到-1917.027的值。 FORTRAN代码返回值为-1918.732。 PL/SQL代码关闭一天,一个月和一年。
如何将'01/01/0001'转换为零,然后减去一个日期?
请帮忙,并提前致谢。
也许只是创建函数减去两个日期硬核-1.705。 – dcieslak