我有一个名为AUDIT的表,它保存了对帐户所做的所有修改。有一个字段AUDIT_DATE,其中包含已完成特定修改的日期。现在的问题是,在我的一位同事Oracle PL / SQL开发人员中,我可以看到AUDIT_DATE列中的时间和日期,但在我的Oracle PL / SQL开发人员中,我看不到时间部分。所以我认为在我的Oracle PL / SQL开发人员中没有正确完成某些设置,这就是为什么我看不到时间部分。我问同事,但他不清楚这种差异。
答案 0 :(得分:11)
如果您希望在不使用to_char()
格式模板的情况下查看显示时间的日期,则需要更改NLS_DATE_FORMAT
。假设您的意思是Oracle SQL Developer,您可以从Tools-> Preferences执行此操作,展开左侧面板中的Database部分,然后选择NLS:
目前NLS_DATE_FORMAT
设置为DD-MON-RR
,今天显示为16-MAY-14
。要显示完整的日期和时间,我可以将其设置为YYYY-MM-DD HH24:MI:SS
。您可能还想更改NLS_TIMESTAMP
格式。
PL / SQL Developer在Tools-> Preferences:
下也有NLS选项
您可以看到可用的format models in the documentation。
如果您正在编写将要或可能由其他人执行的代码,请不要依赖使用这些参数的隐式格式。它们适用于您自己的封闭环境中的即席查询,但是当其他人(使用不同的NLS设置)运行它们时,它们可能会以有趣的方式中断。对于除了即席查询之外的任何内容,您应该使用to_char(<column>, 'YYYY-MM-DD HH24:MI:SS')
或任何适当的模型来指定掩码。这当然也意味着您可以获得正确的列格式;如果你的列只代表时间,那么设置会话的格式模型并依赖于这意味着你会看到所有00:00:00
次,这通常只是噪音。