Method: ArelExtensions::Visitors::MSSQL#quoted_date

Defined in:
lib/arel_extensions/visitors/mssql.rb

#quoted_date(value) ⇒ Object



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/arel_extensions/visitors/mssql.rb', line 88

def quoted_date(value)
  if value.acts_like?(:time)
    if (ActiveRecord.respond_to?(:default_timezone) && ActiveRecord.default_timezone == :utc) || ActiveRecord::Base.default_timezone == :utc
      value = value.getutc if value.respond_to?(:getutc) && !value.utc?
    else
      value = value.getlocal if value.respond_to?(:getlocal)
    end
  end
  # new versions of AR use `to_fs`, but we want max compatibility, and we're
  # not going to write it over and over, so it's fine like that.
  result = value.to_formatted_s(:db)
  if value.respond_to?(:usec) && value.usec > 0
    result << '.' << sprintf('%06d', value.usec)
  else
    result
  end
end