通过Oracle显示时间格式

时间:2011-11-15 09:19:13

标签: sql oracle date time

我希望将我的专栏时间视为'hh24:mi:ss',但即使我将其插入为to_date('13:00:00','hh24:mi:ss')。它仍显示为日期格式。我尝试了不同的转换方法,我不想改变会话。

这是我创建的表格:

CREATE TABLE Test
  (
    Name VARCHAR2(20),
    Description Varchar2(20),
    StudyTime Date,
    SleepTime Date,
  );

插入:

INSERT INTO Test 
VALUES('JUDY','STUDYING AT ABC', (To_Date('01:00:00', 'HH24:MI:SS')), 
            (TO_DATE('06:35:00', 'HH:MI:SS')));

显示结果:

Judy,Studying at abc,11-Nov-2011,11-Nov-2011

感谢任何人的帮助!

1 个答案:

答案 0 :(得分:5)

您的IDE或SQL * Plus设置显示的默认日期格式为DD-Mon-YYYY。 即使您只是输入时间格式,oracle仍会将其视为完整的日期和时间,因此2011年11月11日的日期(您需要注意这一点!)。

当您选择所有用于显示的界面的列时,结果将显示日期列的字符表示,如果您尚未指定它将使用默认的NLS格式设置。 请参阅:http://www.adp-gmbh.ch/ora/admin/nls_levels.html

更改NLS日期格式设置或使用TO_CHAR指定您希望结果的格式。

尝试:

SELECT name,
       description,
       TO_CHAR(studytime, 'HH24:MI:SS') as studytime,
       TO_CHAR(sleeptime, 'HH:MI:SS') as sleeptime
  FROM test;

N.B。我使用HH24 studytimeHH sleeptime,就像您在输入值时的示例中所做的那样。

这应该以正确的格式显示它。