Class: ActiveRecord::ConnectionAdapters::SQLServer::Type::DateTime

Inherits:
Type::DateTime
  • Object
show all
Includes:
TimeValueFractional
Defined in:
lib/active_record/connection_adapters/sqlserver/type/datetime.rb

Direct Known Subclasses

DateTime2, SmallDateTime

Instance Method Summary collapse

Instance Method Details

#_formatted(value) ⇒ Object

Currently only called by our custom Time type for formatting



26
27
28
# 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) ⇒ Object



39
40
41
# 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) ⇒ Object



47
48
49
# File 'lib/active_record/connection_adapters/sqlserver/type/datetime.rb', line 47

def quoted(value)
  Utils.quote_string_single(value)
end

#serialize(value) ⇒ Object

We do not want the Time object to be turned into a string



32
33
34
35
36
37
38
39
40
# File 'lib/active_record/connection_adapters/sqlserver/type/datetime.rb', line 32

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_typeObject



9
10
11
# File 'lib/active_record/connection_adapters/sqlserver/type/datetime.rb', line 9

def sqlserver_type
  'datetime'.freeze
end

#type_cast_for_schema(value) ⇒ Object



43
44
45
# File 'lib/active_record/connection_adapters/sqlserver/type/datetime.rb', line 43

def type_cast_for_schema(value)
  serialize(value).quoted
end