【问题标题】:Oracle: date type giving errors [duplicate]Oracle:日期类型给出错误[重复]
【发布时间】:2013-12-01 12:13:06
【问题描述】:
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 论坛中看到的那样,我正试图通过做这个数学来仅使用整数来形成一个日期,但它一直给我错误,因为这显然是不正确的。有什么建议么?

【问题讨论】:

  • 你能举个例子吗?
  • 在这种情况下,我试图创建这个日期'1/01/2014'。
  • to_date() 采用 character 值作为输入,而不是数字

标签: oracle variables date plsql date-conversion


【解决方案1】:

如果我理解正确,以下示例之一应该会有所帮助:

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;

【讨论】:

  • 它给我的错误是“文字与日期格式不匹配”​​。我试过你的代码,它说月份由于某种原因无效。
  • 你能显示日、月、年的确切值吗?或者也许是下一个表达式的值? ((日*10000) + (月*1000) + 年)
  • 日 = 10000 月 = 1000 年 = 2014
  • 如果你想使用这个表达式,那么天应该是 1 月 1 和年 2014。如果您坚持输入示例,那么您应该删除常量乘法。 (to_date(day+month+year,...)
  • 你能给我代码吗?我尝试了很多不同的方法,每一个都是错误的。这太烦人了。
猜你喜欢
  • 2012-04-23
  • 1970-01-01
  • 1970-01-01
  • 2014-01-18
  • 1970-01-01
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 2019-05-12
相关资源
最近更新 更多