我使用TO_DATE函数插入了一个元组,但结果是' 05/01/2015'当我做查询。没有时间显示。有什么不对吗?
INSERT INTO course_section VALUES(1,'MWF',TO_DATE('10:00:00 A.M.','HH:MI:SS A.M.'));
如何解决?
答案 0 :(得分:3)
就在那里。 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;
答案 1 :(得分:0)
将NLS_DATE_FORMAT设置为您的程序或会话的规格
例如,在SQL * Plus中,添加到login.sql
更改会话集NLS_DATE_FORMAT ='DD-MON-YYYY HH24:MI:SS';
对于SQL Developer,请在Preferences>中设置。数据库> NLS
对应用进行编码时,如果要强制使用特定的日期格式,则使用TO_CHAR会很好。