DATE
is een ingebouwd type in Oracle, dat op een vaste manier wordt weergegeven en waar je geen controle over hebt.
Dus:
Ik wil dat het wordt ingevoegd [...] als 08/01/2011 12:00:00 AM
Bovenstaande is onzinnig. Je voegt geen string in, je voegt een datum in.
Formaat is alleen nuttig wanneer u dat wilt:
- om een string te converteren naar een interne weergave van de datum met
TO_DATE
(format mask:hoe de string te ontleden); - om een interne weergave van de datum om te zetten in een string met
TO_CHAR
(format masker:hoe de datum te renderen).
Dus eigenlijk, in jouw voorbeeld neem je een DATE, converteer je het naar een STRING met een bepaald formaat, en converteer je het terug naar DATE met hetzelfde formaat. Dit is een no-op.
Wat nu uw client weergeeft:dit komt omdat uw Oracle Client DATE-velden niet rechtstreeks weergeeft en de NLS-laag elk geselecteerd DATE-veld converteert. Het hangt dus standaard af van uw landinstelling.
Wat je wilt is SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual;
die de conversie expliciet uitvoert en een tekenreeks retourneert.
En wanneer u een datum in een database wilt invoegen, kunt u TO_DATE
. gebruiken of datumletters.