2015-09-14 3 views
5

CAST操作が早いArelにクエリを作成する必要があります。元のクエリは次のようになりました: select * from tablename tablename.anniversary> = CAST(DATETIMEとしてのSTR_TO_DATE(?、 '%d-%m-%Y-%k-%i-%s')Arel CAST操作のクエリ

条件、私はこれをやっているところについては

(疑問符は、さらに、コード内の実際の日付に置き換えられます):

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

私が取得する必要があり、最終的な結果のクエリを持っている必要があります。 tablename.anniversary> = '2015-07-13 16:12:00'

Bu私は得る:

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

私は間違って何をしていますか?

答えて

3

私はそれがあなたの質問を理解してわからないんだけど、...

まず、なぜあなただ​​け ルビーdatetime formatingを使用していませんか?
しかし、この日は、列の場合:

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

AREL ::ノード::(「DATETIME」)動作するようには思えない引用符で囲まれた、私が、おかげでそれを編集 –

+0

を未定義だと言います。それはArel :: Nodes :: Quoted.new( 'DATETIME')ですが、それが動作すればあなたのDBに依存します。 –