Sql Arel查询转换操作
我需要在Arel中形成一个查询,该查询之前有一个CAST操作。原始查询如下所示: 从tablename.junival>=CAST的tablename中选择*作为日期时间(STR_TO_DATE(?,%d-%m-%Y-%k-%i-%s)) (在进一步代码中,问号替换为实际日期) 对于where条件,我将执行以下操作:Sql Arel查询转换操作,sql,arel,Sql,Arel,我需要在Arel中形成一个查询,该查询之前有一个CAST操作。原始查询如下所示: 从tablename.junival>=CAST的tablename中选择*作为日期时间(STR_TO_DATE(?,%d-%m-%Y-%k-%i-%s)) (在进一步代码中,问号替换为实际日期) 对于where条件,我将执行以下操作: where(tablename['anniversary'] .gteq("CAST(STR_TO_DATE(#{date_value
where(tablename['anniversary']
.gteq("CAST(STR_TO_DATE(#{date_value},'%d-%m-%Y %k:%i') as DATETIME)"))
我应该得到的最终结果查询应该有:
tablename.Junival>=“2015-07-13 16:12:00”
但我得到:
tablename.anniversary >= 'CAST(STR_TO_DATE(13-09-2015 05:33PM,\'%d-%m-%Y %k:%i\') as DATETIME)'
我做错了什么?我不确定你是否理解你的问题,但是 首先,你为什么不用Ruby呢 ?
但如果此日期是一列:
Arel::Nodes::NamedFunction.new('CAST', [Model.arel_table[:column_name].as(Arel::Nodes::Quoted.new('DATETIME'))])
Arel::Nodes::Quoted('DATETIME')似乎不起作用,说它是未定义的。编辑它,谢谢。它是Arel::Nodes::Quoted.new('DATETIME'),但是否有效取决于您的数据库。