Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
如何在oracle 10g中将日期更改为时间_Oracle - Fatal编程技术网

如何在oracle 10g中将日期更改为时间

如何在oracle 10g中将日期更改为时间,oracle,Oracle,我必须在插入时输入一个时间,我使用to_DATE函数,但它给我的是日期而不是时间,应该是时间 这是我使用的表和代码 SQL>从shift中选择* SNO SNAME STIMING ---------- -------------------- --------- 121323 morning 01-APR-17 112232 evening 01-APR-17 665342

我必须在插入时输入一个时间,我使用
to_DATE
函数,但它给我的是日期而不是时间,应该是时间

这是我使用的表和代码

SQL>从shift中选择*

       SNO SNAME                STIMING
---------- -------------------- ---------
    121323 morning              01-APR-17
    112232 evening              01-APR-17
    665342 afternoon            01-APR-17

SQL> update shift
2  set  STIMING= ('07:00:00 HH,MI,SS') 
3  where SNO=121323;
set  STIMING= ('07:00:00 HH,MI,SS')             
 *
ERROR at line 2:
ORA-01843: not a valid month
我必须每次输入
STIMING

Oracle没有
时间
数据类型。
DATE
数据类型在内部始终存储为,并且始终由年(2字节)和月、日、小时、分钟和秒(各1字节)组成

不能没有日期的年、月或日组件

如果您想要一个独立的时间,那么您必须将其存储为不同的数据类型,或者存储年/月/日并忽略该组件

当您在
选择
ing
STIMING
列时,该列不显示时间分量。您可以通过更改在
NLS\u date\u format
session参数中设置的默认日期格式来更改此设置

您可以使用以下方法查看此参数:

SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';
您可以使用以下方法在当前会话中设置此值:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';
(注意:这不会更改任何其他用户的值。)

插入日期时,您可以使用:

INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TO_DATE( '01-APR-2017 07:00' DD-MON-YYYY HH24:MI' ) )
或者,ANSI
时间戳
文字(将隐式转换为列的
日期
格式):


我建议您避免更新,将插入部分从
更改为\u date
,无格式参数更改为
到\u date(colname,'DD-MON-YY HH24:MI:SS')

添加到问题表说明中,以便人们可以回答您。您必须为
日期提供日期组件。选择任意日期,例如2000-01-01,并将所有值存储为2000-01-01的时间,例如
到日期('2000-01-01 07:00:00','YYYY-MM-DD HH24:MI:SS')
INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )