通过Oracle显示时间格式

JLe*_*ner 1 sql oracle time date

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

这是我创建的表格:

CREATE TABLE Test
  (
    Name VARCHAR2(20),
    Description Varchar2(20),
    StudyTime Date,
    SleepTime Date,
  );
Run Code Online (Sandbox Code Playgroud)

插入:

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

显示结果:

Judy,Studying at abc,11-Nov-2011,11-Nov-2011
Run Code Online (Sandbox Code Playgroud)

感谢任何人的帮助!

Oll*_*lie 6

您的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;
Run Code Online (Sandbox Code Playgroud)

注意我在输入您的值时在您的示例中使用了HH24for studytimeHHfor sleeptime.

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