oracle返回null的最大日期
我在一个函数中有一个查询返回空日期,我有点不清楚为什么 问题是oracle返回null的最大日期,oracle,date,max,Oracle,Date,Max,我在一个函数中有一个查询返回空日期,我有点不清楚为什么 问题是 select max(as_of_date) from thresholds where as_of_date = (select max(as_of_date) from thresholds where as_of_date <= in_as_of_date)); 因此,在这种情况下,1998年1月1日
select max(as_of_date)
from thresholds
where as_of_date = (select max(as_of_date)
from thresholds
where as_of_date <= in_as_of_date));
因此,在这种情况下,1998年1月1日的l_生效日期将是1999年1月1日
阈值表中存在两条记录
AS_OF_DATE | AMOUNT
11-SEP-12 | 50
01_JAN-11 | 40
似乎任何有效日期大于1999年的数据都不会从阈值表中返回截止日期。我不清楚为什么。任何帮助都将不胜感激,谢谢 好吧,假设你是两位数的年份,那么2012年9月11日和2011年1月1日都在99年1月1日之后。如果您正在传递字符串并进行隐式日期转换,请不要这样做,但您的NLS_date_格式是什么?可能还值得检查表中4位数年份的值以及传递的值。很难说,但看起来像是世纪混淆。98年1月1日和99年1月1日的区别是一年,而不是一个月。您可能需要编辑问题以更正此问题。谢谢。从双重返回中选择什么作为日期的日期?@AlexPoole:年份是基于RR的,我原本以为这是日期格式的问题。结果表明,select功能正常。它所查询的数据的记录少于2011条。显然,情况不应该是这样。这就解释了为什么我会得到空日期。@BobJarvis:是的,你是对的,我想我有好几个月的时间在想;
AS_OF_DATE | AMOUNT
11-SEP-12 | 50
01_JAN-11 | 40