2015-09-14 19 views
5

Daha önce CAST işlemi olan Arel'da bir sorgu oluşturmam gerekiyor. orijinal sorgu gibi: seçme * tabloismi gelen burada tablename.anniversary> = CAST (? STR_TO_DATE ('% d-% m-% Y-% k% i-% s') başlangıç ​​tarihi gibi)Arel Query CAST işlemi

koşul, bunu yapıyorum nereye için

(soru işareti daha da kodunda gerçek tarihe göre değiştirilir):

where(tablename['anniversary'] 
         .gteq("CAST(STR_TO_DATE(#{date_value},'%d-%m-%Y %k:%i') as DATETIME)")) 

Ben almalısınız son çıkan sorgu olmalıdır: tablename.anniversary> = '2015-07-13 16:12:00'

Bu t I olsun:

tablename.anniversary >= 'CAST(STR_TO_DATE(13-09-2015 05:33PM,\'%d-%m-%Y %k:%i\') as DATETIME)' 

Neyi yanlış yapıyorum?

cevap

3

sorunuzu anlayamadım ama ...

İlk neden sadece Ruby datetime formating kullanmıyorsun?
Ama bu tarih bir sütun ise:

Arel::Nodes::NamedFunction.new('CAST', [Model.arel_table[:column_name].as(Arel::Nodes::Quoted.new('DATETIME'))]) 
+0

Arel :: Düğümler :: ('DATETIME') çalışmak için görünmüyor Alıntı, teşekkürler düzenlemek –

+0

tanımsız söylüyor. Arel :: Nodes :: Quoted.new ('DATETIME') 'dir, fakat çalışıyorsa DB'nize bağlıdır. –