繁体   English   中英

Oracle查询以获取数据类型的最小值或最大值

[英]Oracle query to get min or max value of a datatype

Oracle是否具有将返回数据类型的最小值或最大值的函数或查询? 从文档中,我知道日期字段的最小值是公元前4712年1月1日。 无论如何,有没有从选择语句中获取该日期值?

Select ?something? from dual;

如果您编写一小段代码,那么答案是肯定的 但是,并非完全是单个SELECT (除非您将所有内容都放到了函数中)。

SQL> set serveroutput on;
SQL> declare
  2    datum date := trunc(sysdate);
  3  begin
  4    while 1 <> 2 loop
  5      datum := datum - 1;
  6    end loop;
  7  exception
  8    when others then
  9      dbms_output.put_line('Last valid date = ' ||
 10        to_char(datum, 'dd.mm.yyyy bc'));
 11  end;
 12  /
Last valid date = 01.01.4712 BC

PL/SQL procedure successfully completed.

SQL>

那很快(我的意思是,代码不花时间去执行)。 对于其他数据类型,并不是那么快(例如, 哪个是最小的有效整数? ),至少不是通过使用相同的原理。

朱利安日历中使用第一个值

select to_date(1, 'j') from dual

显示的结果取决于服务器和客户端的设置,但是日期4712-01-01 BC

dbfiddle演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM