Sql ORA-01830与截止日期的错误

Sql ORA-01830与截止日期的错误,sql,oracle,to-date,to-char,Sql,Oracle,To Date,To Char,我试图创建一个日期减去两天,然后将其转换为字符。出于某种原因,我得到以下错误: ORA-01830: date format picture ends before converting entire input string 这是我的密码: SELECT TO_CHAR(to_date('20-JUL-01 10:40:12')-2, 'dd-Mon-yy 24HH:MI:SS') as "Subtract 2 Days" FROM DUAL; 我不确定出了什么问题,这似乎

我试图创建一个日期减去两天,然后将其转换为字符。出于某种原因,我得到以下错误:

ORA-01830: date format picture ends before converting entire input string
这是我的密码:

 SELECT TO_CHAR(to_date('20-JUL-01 10:40:12')-2, 'dd-Mon-yy 24HH:MI:SS') as "Subtract 2 Days"
       FROM DUAL;

我不确定出了什么问题,这似乎是秒的问题。Oracle的默认时钟是12小时的AM/PM时钟。因此,您需要日期转换的日期格式:

SELECT TO_CHAR(to_date('20-JUL-01 10:40:12', 'dd-Mon-yy HH24:MI:SS')-2,
               'dd-Mon-yy HH24:MI:SS') as "Subtract 2 Days"
FROM DUAL;

此外,正确的24小时符号是“HH24”,而不是“24HH”。

Oracle默认为12小时的AM/PM时钟。因此,您需要日期转换的日期格式:

SELECT TO_CHAR(to_date('20-JUL-01 10:40:12', 'dd-Mon-yy HH24:MI:SS')-2,
               'dd-Mon-yy HH24:MI:SS') as "Subtract 2 Days"
FROM DUAL;

另外,正确的24小时能指是“HH24”,而不是“24HH”。

我必须说:这个答案不仅得到了匿名的反对票(但也有其他的反对票),而且我还测试了它,知道它是正确的(当然可能有拼写错误)。最近在这里,无缘无故的匿名反对票似乎非常普遍。人们也不接受任何答案(只是接受帮助,不承认就跑——很粗鲁!),或者接受但不投票。我最后11个被接受的答案中有6个得到了0票。并不是说我需要别人拍拍我的背,但是,是的,花点时间表示感谢似乎并没有什么期望。我只能猜测有人反对第一句话——默认情况下有没有显示时间成分?如果会话NLS_DATE_格式有HH和AM,它不会与OP的值发生错误,它只会假设是a.m。当然,这两者都不会影响您给出的解决方案的正确性。人们都很奇怪……我必须说:这个答案不仅得到了匿名的反对票(还有其他的反对票),而且我还测试了它,知道它是正确的(当然可能有拼写错误)。最近在这里,无缘无故的匿名反对票似乎非常普遍。人们也不接受任何答案(只是接受帮助,不承认就跑——很粗鲁!),或者接受但不投票。我最后11个被接受的答案中有6个得到了0票。并不是说我需要别人拍拍我的背,但是,是的,花点时间表示感谢似乎并没有什么期望。我只能猜测有人反对第一句话——默认情况下有没有显示时间成分?如果会话NLS_DATE_格式有HH和AM,它不会与OP的值发生错误,它只会假设是a.m。当然,这两者都不会影响您给出的解决方案的正确性。人们都很奇怪。。。