class ActiveRecord::ConnectionAdapters::SQLServer::Type::DateTime

Public Instance Methods

_formatted(value) click to toggle source

Currently only called by our custom Time type for formatting

# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 26
def _formatted(value)
  "#{value.to_s(:_sqlserver_datetime)}.#{quote_fractional(value)}"
end
deserialize(value) click to toggle source
Calls superclass method
# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 39
def deserialize(value)
  value.is_a?(Data) ? super(value.value) : super
end
quoted(value) click to toggle source
# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 47
def quoted(value)
  Utils.quote_string_single(value)
end
serialize(value) click to toggle source
Calls superclass method
# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 13
def serialize(value)
  value = super
  return value unless value.acts_like?(:time)
  datetime = value.to_s(:_sqlserver_datetime).tap do |v|
    fraction = quote_fractional(value)
    v << ".#{fraction}"
  end
  Data.new datetime, self
end
sqlserver_type() click to toggle source
# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 9
def sqlserver_type
  'datetime'.freeze
end
type_cast_for_schema(value) click to toggle source
# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 43
def type_cast_for_schema(value)
  serialize(value).quoted
end

Private Instance Methods

fast_string_to_time(string) click to toggle source
Calls superclass method
# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 53
def fast_string_to_time(string)
  time = ActiveSupport::TimeZone['UTC'].strptime(string, fast_string_to_time_format)
  new_time(time.year, time.month, time.day, time.hour,
           time.min, time.sec, Rational(time.nsec, 1_000))
rescue ArgumentError
  super
end
fast_string_to_time_format() click to toggle source
# File lib/active_record/connection_adapters/sqlserver/type/datetime.rb, line 61
def fast_string_to_time_format
  "#{::Time::DATE_FORMATS[:_sqlserver_datetime]}.%N".freeze
end