2015-01-20 2 views
1

Я пытался преобразовать следующий VARCHAR в формат даты не повезло:Oracle SQL Date Format

12/99 
01/04 

Я попытался to_char (MyDate, 'мм/гггг'), что дает мне ошибки. Есть ли способ преобразовать этот формат даты, даже если мне не хватает дня?

+0

Так у вас есть тип DATE, и вы хотите, чтобы показать месяц, год только? – OldProgrammer

+0

Да, так оно было введено в db доступа, и я пытаюсь перенести данные в Oracle. Я попробовал to_char (to_date (mydate, 'mm/yy')). Однако некоторые из лет не верны, например, 99 заканчивается тем, что составляет 2099 вместо 1999 года. – Sam

ответ

5

Вы можете использовать формат RR за год:

select to_date('12/99','mm/rr') from dual --01/12/1999 
select to_date('01/04','mm/rr') from dual --01/01/2004 

Этот формат получить годы между 1950 до 2049

+2

И когда текущий год равен 2050 году, он даст вам разные результаты; 12/99 даст вам 1 декабря 2099 года и 01/04 даст вам 1 января 2150 года. –

+0

Если они выполняют этот же код в 2050 году, тогда у них будут более серьезные проблемы. – TommCatt