Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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错误:ORA-01849:小时必须介于1和12之间_Sql_Oracle11g - Fatal编程技术网

获取SQL错误:ORA-01849:小时必须介于1和12之间

获取SQL错误:ORA-01849:小时必须介于1和12之间,sql,oracle11g,Sql,Oracle11g,对于一个表,我必须更新列DT_MODIFIED TIMESTAMP(6)的日期,并且在运行脚本时,iam出现以下错误 update table1 set dt_modified=to_char('01Feb2016 20:04:08.000') where dt_stamp='XXXXX' and xcolumn=’YYYY’; Error starting at line 6 in command: update table1 set dt_modified=to_char('01Feb20

对于一个表,我必须更新列DT_MODIFIED TIMESTAMP(6)的日期,并且在运行脚本时,iam出现以下错误

update table1 set dt_modified=to_char('01Feb2016 20:04:08.000') where dt_stamp='XXXXX' and xcolumn=’YYYY’;

Error starting at line 6 in command:
update table1 set dt_modified=to_char('01Feb2016 20:04:08.000') where dt_stamp='XXXXX' and xcolumn=’YYYY’;
Error report:
SQL Error: ORA-01849: hour must be between 1 and 12
01849. 00000 -  "hour must be between 1 and 12"

请在这方面指导我

您最初的方法有几个问题。首先,由于您试图将日期存储到
DT\u MODIFIED
列中,因此应该使用
to\u date
to\u TIMESTAMP
,而不是
to\u CHAR
TO_CHAR
将日期转换为字符串,但您希望执行与此完全相反的操作

其次,如果您想使用24小时制,则需要通过传递格式字符串明确地告诉Oracle这一点。请尝试以下查询:

UPDATE table1
SET dt_modified = TO_TIMESTAMP('01Feb2016 20:04:08.000', 'ddmonyyyy hh24:mi:ss.ff3')
WHERE dt_stamp = 'XXXXX' AND xcolumn = 'YYYY';

在您的建议之后,我收到错误ORA-01722:无效number@developer您应该使用
来表示日期
来表示时间戳
,而不是
来表示字符