2012-09-26 49 views
4

獲取正確日期時遇到問題。當我將日期從一個表複製到另一個表時在Oracle中插入1950年之前的日期

insert into table1 select some_date from some_table 

它插入錯誤的日期。這個問題只發生在1950年以前的日期。在表1中,我有日期1.1.1949,當我將它複製到some_table時,我得到日期2049-1-1

如何獲取正確的日期... 1949-1 -1?

+3

爲什麼複製日期時轉換爲字符? – beny23

+1

使用'YYYY'而不是'RRRR'。 – Annjawn

+0

它曾經只是some_date,但後來我認爲它會有所作爲。我會糾正它。 – DiaMonD

回答

6

你應該使用:

to_char(some_date,'YYYY-MM-DD') 

RRRR是2位數的年份,假設同一個世紀。在這裏閱讀:What is the difference between 'YYYY' and 'RRRR' in Oracle SQL

+3

可能值得鏈接到[日期格式模型](http://docs.oracle.com/cd/B28359_01/server.111/b28286/sql_elements004.htm)以及... – beny23

+0

您是對的。起初我沒有使用to_char,可能是因爲我的NLS_DATE_FORMAT被設置爲DD.MM.RR,它插入了錯誤的年份。 – DiaMonD

+0

@ beny23是的,感謝您分享鏈接! –