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.