[Oracle] Defaultwert mit Offset setzen

BeaTBoxX

Erfahrenes Mitglied
Hallo zusammen,

ich habe folgendes Problem:
Ich möchte eine Tabelle erstellen, mit einer DATE Spalte. Diese Spalte soll den Defaultwert Sysdate + 2 Tage bekommen.
Gibt es fuer dieses "+2 Tage" (Monate?Jahre?) eine Funktion oderso?

Es muesste ja in dieser Form aussehen:

Code:
CREATE TABLE blubb_tabelle ( blubberspalte DATE DEFAULT XXXX );


Vielen Dank!

Gruß
Frank
 
Hallo!

Schau mal hier:
Code:
SQL> create table test(id int,orderdate date default (sysdate+2));

Tabelle wurde angelegt.

SQL> select * from test;

Es wurden keine Zeilen ausgewõhlt

SQL> insert into test(id) values(1);

1 Zeile wurde erstellt.

SQL> insert into test(id) values(2);

1 Zeile wurde erstellt.

SQL> select * from test;

        ID ORDERDAT
---------- --------
         1 31.12.04
         2 31.12.04

SQL> select sysdate from dual;

SYSDATE
--------
29.12.04

SQL>

Gruß Tom
 
Hmmmmmm
Das war ja einfach.. aber .. wenn cih einfach ne Zahl addiere.. dann wird das als Tage interpretiert.. soweit ok.
Wie geht das denn dann mit Monaten oder Jahren?

aber DANKE dir schonmal :) :) :) :) :) :) :)

Gruß
Frank


.oO( life can be so easy.. )
 
Hallo!

Schau mal hier:
Code:
SQL> select sysdate from dual;

SYSDATE
--------
29.12.04

SQL> --plus 2 tage
SQL> select (sysdate + 2) from dual;

(SYSDATE
--------
31.12.04

SQL> --plus 2 monate
SQL> select (add_months(sysdate,2)) from dual;

(ADD_MON
--------
28.02.05

SQL> --plus 2 jahre
SQL> select (add_months(sysdate,2*12)) from dual;

(ADD_MON
--------
29.12.06

Gruß Tom
 
Hmm.... dankeschoen :)

ich wundere mich nur.. das sieht etwas inkonsequent aus finde ich..

Tage dazu mit nem Operator
Monate dazu .. mit Funktion.
Jahre dazu .. garnicht realisiert -> Umweg 12 * 1 Monat

Hat da kein Oracle Entwickler mal das Hirn eingeschaltet? Oder ist das aus irgend nem Standpunkt heraus sinnvoll ?



Aber Danke Thomas " ;)
 
Hallo!

Na ja und wie hätten die Oracle Entwickler diese Funktion implementiert?
Wahrscheinlich hätten die auch nur 12 * Anzahl Jahre gemacht. Vielleicht ist der Aufwand eine neue Funktion einzubauen ja größer als einfach diesen Weg zu gehen... wir werden's wohl nie Erfahren.... ;-)

Gruß Tom
 
Naja ich dachte an ne Funktion wie zb. dateoffset(parameterfuerplusoderminus,"tt-mm-jjjj");
Aber ich fantasiere ;)

Danke auf jedenfall :) Hat mir geholfen!
Und Anfang Februar ist Datenbankprüfung YEEHAA :D
 

Neue Beiträge

Zurück