【发布时间】:2015-08-13 00:18:29
【问题描述】:
我使用 TO_DATE 函数插入了一个元组,但当我执行查询时结果是 '05/01/2015'。没有显示时间。有什么问题吗?
INSERT INTO course_section VALUES(1,'MWF',TO_DATE('10:00:00 A.M.','HH:MI:SS A.M.'));
如何解决?
【问题讨论】:
标签: sql oracle oracle-sqldeveloper oracle-apex
我使用 TO_DATE 函数插入了一个元组,但当我执行查询时结果是 '05/01/2015'。没有显示时间。有什么问题吗?
INSERT INTO course_section VALUES(1,'MWF',TO_DATE('10:00:00 A.M.','HH:MI:SS A.M.'));
如何解决?
【问题讨论】:
标签: sql oracle oracle-sqldeveloper oracle-apex
它就在那里。 DATE 列实际上是一个日期和时间,精确到秒。如果不指定日期部分,则默认为当月的第一天。
Oracle 显示日期的默认格式是DD-MON-RR,即天数/月份短名称/带有世纪翻转的年份。
要获取时间,请使用TO_CHAR 函数指定自定义格式。要使用 24 小时制查看您的时间,请执行以下操作(其中 x 是您的日期列):
SELECT TO_CHAR(x, 'HH24:MI:SS') FROM course_section;
要使用带 AM/PM 的 12 小时制查看您的时间,请执行以下操作:
SELECT TO_CHAR(x, 'HH:MI:SS AM') from course_selection;
或者你可以在格式字符串中使用PM代替AM;无论哪种方式,您都会得到相同的结果:
SELECT TO_CHAR(x, 'HH:MI:SS PM') FROM course_selection;
【讨论】:
将 NLS_DATE_FORMAT 设置为您的程序或会话的规范
例如在 SQL*Plus 中,添加到 login.sql
更改会话集 NLS_DATE_FORMAT = 'DD-MON-YYYY HH24:MI:SS';
对于 SQL Developer,在 Preferences > Database > NLS 中设置
在编写应用程序时,如果您想强制使用特定的日期格式,则使用 TO_CHAR 是很好的选择。
【讨论】: