Sql 通过Oracle显示时间格式
我希望将我的专栏时间视为'hh24:mi:ss',但即使是我也将其作为截止日期插入('13:00:00','hh24:mi:ss')。它仍然以日期格式显示。我尝试了不同的转换方法,我不想改变会话 这是我创建的表:Sql 通过Oracle显示时间格式,sql,oracle,date,time,Sql,Oracle,Date,Time,我希望将我的专栏时间视为'hh24:mi:ss',但即使是我也将其作为截止日期插入('13:00:00','hh24:mi:ss')。它仍然以日期格式显示。我尝试了不同的转换方法,我不想改变会话 这是我创建的表: CREATE TABLE Test ( Name VARCHAR2(20), Description Varchar2(20), StudyTime Date, SleepTime Date, ); 插入: INSERT INTO Test
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
谢谢任何人的帮助 您的IDE或SQL*Plus设置正在显示默认的日期格式
DD Mon YYYY
。
即使您输入的只是一个时间格式,oracle仍会将其视为完整的日期和时间,因此是2011年11月11日(您需要注意这一点!)
然后选择所有列时,无论使用哪个界面来显示结果,都将显示日期列的字符表示形式,如果未指定是什么,则将使用默认的NLS格式设置。
见:
更改NLS日期格式设置,或使用指定所需结果的格式
尝试:
注意:我使用HH24
表示studytime
和HH
表示sleeptime
,正如您在示例中输入值时所做的那样
这将以正确的格式显示。您的IDE或SQL*Plus设置将显示默认的日期格式DD Mon YYYY
。
即使您输入的只是一个时间格式,oracle仍会将其视为完整的日期和时间,因此是2011年11月11日(您需要注意这一点!)
然后选择所有列时,无论使用哪个界面来显示结果,都将显示日期列的字符表示形式,如果未指定是什么,则将使用默认的NLS格式设置。
见:
更改NLS日期格式设置,或使用指定所需结果的格式
尝试:
注意:我使用HH24
表示studytime
和HH
表示sleeptime
,正如您在示例中输入值时所做的那样
这将以正确的格式显示它。我希望在不写出所有列的情况下从测试中选择*。可能吗?我知道,通过选择to_char格式将起作用。是的,您需要更改IDE中日期列的NLS设置,以显示日期列的时间部分。确定。通过更改nls日期时间格式,我希望在'dd:mon:yyyy'中格式化的其余日期将变为'hh24:mi:ss'。还有其他解决方案吗?由于对您的系统/应用程序一无所知,因此很难指定任何非通用解决方案。如果此时间显示是一次性的,则可以在表上创建一个视图,在视图中指定TO_CHAR格式,并以正确的格式将日期列显示为VARCHAR2。确定。非常感谢你的帮助!我希望在不写出所有列的情况下,从测试中选择*。可能吗?我知道,通过选择to_char格式将起作用。是的,您需要更改IDE中日期列的NLS设置,以显示日期列的时间部分。确定。通过更改nls日期时间格式,我希望在'dd:mon:yyyy'中格式化的其余日期将变为'hh24:mi:ss'。还有其他解决方案吗?由于对您的系统/应用程序一无所知,因此很难指定任何非通用解决方案。如果此时间显示是一次性的,则可以在表上创建一个视图,在视图中指定TO_CHAR格式,并以正确的格式将日期列显示为VARCHAR2。确定。非常感谢你的帮助!
SELECT name,
description,
TO_CHAR(studytime, 'HH24:MI:SS') as studytime,
TO_CHAR(sleeptime, 'HH:MI:SS') as sleeptime
FROM test;