Oracle TimeStamp更新/插入年份解释

时间:2013-05-10 14:59:12

标签: sql database oracle timestamp

如果我要使用以下内容对TimeStamp列进行更新/插入,我是否正确在Oracle中思考...

UPDATE tblBlah set TimeStampColumn = to_timestamp('01-01-99 12:00 AM', 'MM/DD/YY HH:MI AM')
甲骨文将这一年解释为1999年已经发生的一年而不是未来的2099年?

1 个答案:

答案 0 :(得分:4)

YY将取最后两位数字并覆盖当前年份的数字。

select to_timestamp('01-01-99 12:00 AM', 'MM/DD/YY HH:MI AM') from dual
-->
January, 01 2099 00:00:00+0000

改为使用RR

select to_timestamp('01-01-99 12:00 AM', 'MM/DD/RR HH:MI AM') from dual
-->
January, 01 1999 00:00:00+0000

RR将:

  

鉴于一年2位数,如果是,则在下个世纪返回一年   年份<50,当前年份的最后2位数>&gt; = 50;   如果年份>> = 50,则返回上个世纪的年份   当前年份的最后2位数字<50。

Example at SQL Fiddle.