Domanda

C'è una funzione integrata in Oracle che restituirà il più alto possibile data che può essere inserito in un campo data?

È stato utile?

Soluzione

SELECT  TO_DATE('31.12.9999 23:59:59', 'dd.mm.yyyy hh24:mi:ss')
FROM    dual

Si noti che la data minima è molto più semplice:

SELECT  TO_DATE(1, 'J')
FROM    dual

Altri suggerimenti

Dalla documentazione 11g:

Oracle Database in grado di memorizzare le date in epoca Julian, che vanno dal 1 ° gennaio 4712 aC fino al 31 dicembre 9999 CE (Common Era, o 'AD').

http://download.oracle. com / docs / cd / B28359_01 / server.111 / b28318 / datatype.htm # i1847

Non so di una funzione, ma in base al questo articolo :

  

Oracle. 7: dal 1 ° gennaio 4712 aC al 31 dicembre 4712 dC
   Oracle. 8: dal 1 ° gennaio 4712 aC e il 31 dicembre, 9999 dC
   Oracle. 9: dal 1 ° gennaio 4712 aC e il 31 dicembre, 9999 dC
   PL / SQL: dal 1 ° gennaio 4712 aC e il 31 dicembre, 9999 AD.

Un altro modo, solo per divertimento:

SELECT to_date(5373484, 'J') + (1 - 1/24/60/60)
  FROM dual;

SELECT date '9999-12-31' + (1 - 1/24/60/60) 
  FROM dual;

In formato Giuliano (JDDD) la data massima Oracle è 2086307365.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top