DATE
er en indbygget type i Oracle, som er repræsenteret på en fast måde, og du har ingen kontrol over den.
Så:
Jeg vil have det til at indsætte [...] som 08/01/2011 12:00:00 AM
Ovenstående er useriøst. Du indsætter ikke en streng, du indsætter en dato.
Format er kun nyttigt, når du ønsker:
- for at konvertere en streng til en intern repræsentation af dato med
TO_DATE
(formatmaske:hvordan man analyserer strengen); - for at konvertere en intern repræsentation af dato til en streng med
TO_CHAR
(formatmaske:hvordan man gengiver datoen).
Så dybest set, i dit eksempel tager du en DATO, du konverterer den til en STRING med et eller andet format og konverterer den tilbage til DATO med det samme format. Dette er en no-op.
Nu, hvad din klient viser:Dette skyldes, at din Oracle-klient ikke vil vise DATE-felter direkte, og NLS-laget vil konvertere ethvert DATE-felt, der er valgt. Så det afhænger af din lokalitet som standard.
Det, du ønsker, er SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual;
som eksplicit udfører konverteringen og returnerer en streng.
Og når du vil indsætte en dato i en database, kan du bruge TO_DATE
eller bogstaver for dato.