DATE
je vestavěný typ v Oracle, který je reprezentován pevným způsobem a nemáte nad ním žádnou kontrolu.
Takže:
Chci, aby vložil [...] jako 08/01/2011 00:00:00
Výše uvedené je nesmyslné. Nevkládáte řetězec, ale datum.
Formát je užitečný pouze tehdy, když chcete:
- převést řetězec na interní reprezentaci data pomocí
TO_DATE
(maska formátu:jak analyzovat řetězec); - převést interní reprezentaci data na řetězec s
TO_CHAR
(maska formátu:jak vykreslit datum).
Takže v podstatě ve vašem příkladu vezmete DATE, převedete ho na STRING s nějakým formátem a převedete ho zpět na DATE ve stejném formátu. To je ne-op.
Nyní, co váš klient zobrazuje:je to proto, že váš klient Oracle nebude zobrazovat pole DATE přímo a vrstva NLS převede jakékoli pole DATE, které je vybráno. Ve výchozím nastavení tedy záleží na vašem národním prostředí.
Co chcete, je SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual;
který explicitně provede převod a vrátí řetězec.
A když chcete vložit datum do databáze, můžete použít TO_DATE
nebo datové literály.