2013-12-01 5 views
0
if day < 10 then 
    dataV := to_date(((day*1000000) + (month*10000) + year),'d/mm/yyyy'); 
else 
    dataV := to_date(((day*1000000) + (month*10000) + year),'dd/mm/yyyy'); 
end if; 

Ребята Я пытаюсь создать дату, используя только целые числа, выполнив эту математику, как я видел на каком-то форуме Oracle, но он продолжает давать мне ошибки, потому что, видимо, это неверно. Какие-либо предложения?Oracle: тип даты, дающий ошибки

+0

Можете ли вы показать пример значений? –

+0

В этом случае я пытаюсь создать эту дату '1/01/2014'. –

+1

'to_date()' принимает значение * character *, поскольку оно вводится, а не число –

ответ

0

Если я правильно понимаю, один из следующих примеров должно помочь:

day:= 1; 
month:=1; 
year:=2014; 
if day < 10 then 
    dataV := to_date(((day*1000000) + (month*10000) + year),'dmmyyyy'); 
else 
    dataV := to_date(((day*1000000) + (month*10000) + year),'ddmmyyyy'); 
end if; 

Или

day:= 1000000; 
month:= 10000; 
year:=2014; 
if day < 10 then 
    dataV := to_date(day + month + year,'dmmyyyy'); 
else 
    dataV := to_date(day + month + year,'ddmmyyyy'); 
end if; 
+0

Ошибка, которую он дает мне, - буква буква не соответствует формату даты. И я попробовал ваш код, он говорит, что месяц почему-то недействителен. –

+0

Можете ли вы показать точные значения дня, месяца, года? Или, может быть, значение следующего выражения? ((день * 10000) + (месяц * 1000) + год) –

+0

День = 10000 Месяц = ​​1000 Год = 2014 –

Смежные вопросы