to_date() vezme váš řetězec parametru, porovná jej s formátem, který zadáte ve druhém parametru, a vytvoří z něj pole data. Pole data nepoužívá formát, který jste zadali ve druhém parametru – ve skutečnosti bude uloženo pomocí nějaké interní reprezentace dat, která nemá vůbec žádný formát (s největší pravděpodobností číslo).
Chcete-li prezentovat formát zpět ve výsledcích z pole data, můžete:
- Požádejte klienta provádějícího dotaz, aby nastavil parametry NLS (na úrovni relace), aby poskytl lokalizovaný formát s
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD';
prohlášení) nebo - Použijte
to_char(..., 'YYYY-MM-DD')
kolem vašeho stávajícího pole, abyste změnili datum zpět na řetězec naformátovaný tak, jak ho chcete mít. Kde nahradíte...
s vaší aktuální definicí sloupce ve výběru.
Přístup č. 1 již probíhá, protože již bude existovat sada NLS_DATE_FORMAT, která vytváří aktuální formát, ale je ve formátu, který nechcete, takže pokud jej můžete ovládat a měnit tam, můžete to udělat způsob. Pokud nemůžete a musíte mít formát jediným konzistentním jiným způsobem, pak by mohla být cesta #2.