当前位置: 首页 > 知识库问答 >
问题:

日期格式在转换整个输入字符串之前结束

贺子昂
2023-03-14

这是我的错误,我正在使用best-in-place,我希望它更新我的sample\u qty列此表没有id列,因此我对其进行了解决,但即使这样做,我仍然会收到此错误。

ActiveRecord::StatementInvalid(OCIRROR:ORA-01830:日期格式图片在转换整个输入字符串之前结束:选择“SAMPLE\U QTY”。*从“SAMPLE\U QTY”中选择“SAMPLE\U QTY”。“EMPLOYEE\U ID”=“JQIS”和“SAMPLE\U QTY”。“TRANSACTION\U date”=截止日期('2014-11-13 00:00:00 UTC','YYYY-MM-DD HH24:MI:SS')ORDER BY\U date DESC):html" target="_blank">应用程序/控制器/样本控制器。rb:31:“更新”中

Rails 3.1.8 Oracle DB

这是我的模型

default_scope order("CREATE_DATE DESC")
set_table_name :sample_qty
set_primary_keys :employee_id, :create_date
attr_accessible :sample_qty, :create_date
belongs_to :labor
paginates_per 20
validates :transaction_date,
        date: { after: Proc.new { Time.now },
                before: Proc.new { Time.now + 1.day } }

def transaction_date=(new_date)
  self[:transaction_date] = Date.strptime(new_date.to_s, "%m/%d/%Y")
end

def date=(new_date)
  if new_date.blank?
    self[:date] = nil
  else
    self[:date] = Date.strptime(new_date.to_s, "%m/%d/%Y")
  end
end

def create_date=(new_date)
  self[:create_date] = Date.strptime(new_date.to_s, "%m/%d/%Y")
end
end

这是我的控制器

def sample_qty
  @samples = Samples.find(params[:employee_id, :sample_qty])
end

 def edit
   @samples = Samples.find(params[:employee_id])
 end

 def update
   @employee_id = params[:id]
   @samples.assign_attributes({:create_date => Time.now.strftime("%Y-%m-%d")})
   @samples.update_attributes(params[:samples])
   @samples.validates_datetime :create_date
     respond_with_bip(@samples)
 end
 end

共有2个答案

笪昌翰
2023-03-14

看起来你在做:

@samples.assign_attributes({:create_date => Time.now.strftime("%Y-%m-%d")})

但是,您正在分析不同的日期格式:

Date.strptime(new_date.to_s, "%m/%d/%Y")

在一个例子中,它是用正斜杠而不是破折号来分隔的。

朱欣荣
2023-03-14

在引用的错误消息中,您有“SAMPLE\u QTY”。“TRANSACTION\u DATE”=截止日期('2014-11-13 00:00:00 UTC','YYYY-MM-DD HH24:MI:SS')
如果您可以去掉UTC的位(包括前面的空白),这正是图片所没有的等价物,它应该可以正常工作
请参阅Oracle TO\u DATE docu。

 类似资料:
  • 在经历了大量的R之后 以下是我的查询选择*来自openquery(oracle,'select to\u char(to\u date(“创建日期”,“yyyyy-mm-dd”),'dd-mon-yyyy'),来自oracle视图') 数据以以下格式显示,日期为2020-10-07 00:00:000

  • 问题内容: 我想要这种格式 问题答案: 您需要先 解析 日期字符串(使用方法),才能 使用与格式匹配的格式获取对象。 然后使用所需的格式来 格式化 Date对象(Use 方法)以获取字符串。 输出:- 第一种格式是RFC 822 TimeZone与您的日期字符串匹配。有关在日期格式中使用的其他各种选项,请参见。

  • 我得到一串零。有人能帮忙吗?

  • 我在presto上,把日期格式化为varchar,看起来像- 我如何转换这个?

  • 问题内容: 我正在尝试将字符串转换为日期格式,我尝试了很多方法来实现此目的,但是没有成功。我的字符串是“ 2012年1月17日”。我想将其转换为“ 2011-10-17”。有人可以告诉我这样做的方法吗?如果您通过示例工作过,那将是真正的帮助! 问题答案:

  • 问题内容: 我正在使用代码将字符串格式化为日期 但是,如何将日期从格式转换为格式? 问题答案: 使用SimpleDateFormat#format(Date):