2013-05-10 56 views
-1

我說得對在Oracle中思考,如果我是做一個更新/插入到具有以下時間戳列...甲骨文時間戳更新/插入一年解釋

UPDATE tblBlah set TimeStampColumn = to_timestamp('01-01-99 12:00 AM', 'MM/DD/YY HH:MI AM') 

甲骨文將解釋一年作爲已經發生的1999年,而不是未來2099年?

+2

那豈不是更容易嘗試,而不是問這裏? 'SELECT to_timestamp('01 -01-99 12:00 AM','MM/DD/YY HH:MI AM')FROM DUAL' – GolezTrol 2013-05-10 15:01:36

+0

[oracle的'yy'和'rr'日期掩碼有什麼區別?] (http://stackoverflow.com/questions/19058/what-is-the-difference-between-oracles-yy-and-rr-date-mask) – 2013-05-10 15:02:06

回答

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,當前年份的最後兩位數字大於等於50;一年 回報在上一世紀如果年份> = 50,本年度的 最後兩位數字是50 <

Example at SQL Fiddle.