Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 通过Oracle显示时间格式_Sql_Oracle_Date_Time - Fatal编程技术网

Sql 通过Oracle显示时间格式

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

我希望将我的专栏时间视为'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 
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;