221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
|
# File 'lib/arel_extensions/visitors/mssql.rb', line 221
def visit_ArelExtensions_Nodes_DateDiff o, collector
case o.right_node_type
when :ruby_date, :ruby_time, :date, :datetime, :time
collector << case o.left_node_type
when :ruby_time, :datetime, :time then 'DATEDIFF(second'
else 'DATEDIFF(day'
end
collector << LOADED_VISITOR::COMMA
collector = visit o.right, collector
collector << LOADED_VISITOR::COMMA
collector = visit o.left, collector
collector << ')'
else
da = ArelExtensions::Nodes::DateAdd.new([])
collector << 'DATEADD('
collector = visit da.mssql_datepart(o.right), collector
collector << LOADED_VISITOR::COMMA
collector << '-('
collector = visit da.mssql_value(o.right), collector
collector << ')'
collector << LOADED_VISITOR::COMMA
collector = visit o.left, collector
collector << ')'
collector
end
collector
end
|