Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
oracle返回null的最大日期_Oracle_Date_Max - Fatal编程技术网

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