Pokud chcete zobrazit data s časy zobrazenými také bez použití masky formátu pomocí to_char()
, je třeba změnit NLS_DATE_FORMAT
. Za předpokladu, že máte na mysli Oracle SQL Developer, můžete to udělat z Nástroje->Předvolby, rozbalit sekci Databáze na panelu vlevo a vybrat NLS:
Momentálně NLS_DATE_FORMAT
je nastaven na DD-MON-RR
, což by se dnes zobrazilo jako 16-MAY-14
. Aby bylo možné zobrazit celé datum a čas, mohl bych jej nastavit na YYYY-MM-DD HH24:MI:SS
. Možná budete chtít změnit NLS_TIMESTAMP
formát také.
PL/SQL Developer má také možnosti NLS v nabídce Nástroje->Předvolby:
Dostupné modely formátů můžete vidět v dokumentaci.
Pokud píšete kód, který bude nebo může být někdy spuštěn někým jiným, nespoléhejte na implicitní formátování pomocí těchto parametrů. Jsou v pořádku pro dotazy ad hoc ve vašem vlastním uzavřeném prostředí, ale mohou se zajímavým způsobem zlomit, když je spustí někdo jiný – s jiným nastavením NLS. Pro cokoli kromě ad hoc dotazů byste měli skutečně zadat masku pomocí to_char(<column>, 'YYYY-MM-DD HH24:MI:SS')
nebo jakýkoli vhodný model. To samozřejmě také znamená, že získáte správné formátování pro sloupec; pokud máte sloupce, které představují pouze časy, pak nastavení modelu formátu relace a spoléhání se na to znamená, že vidíte všechny 00:00:00
časů, což je často jen hluk.