Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ def fast_string_to_date(string)
end

def fast_string_to_date_format
::Date::DATE_FORMATS[:_sqlserver_dateformat]
ActiveSupport::DateFormats.lookup(:_sqlserver_dateformat)
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def fast_string_to_time(string)
end

def fast_string_to_time_format
"#{::Time::DATE_FORMATS[:_sqlserver_datetime]}.%N"
"#{::ActiveSupport::TimeFormats.lookup(:_sqlserver_datetime)}.%N"
end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ def sqlserver_type
private

def fast_string_to_time_format
::Time::DATE_FORMATS[:_sqlserver_datetime]
::ActiveSupport::TimeFormats.lookup(:_sqlserver_datetime)
end

def apply_seconds_precision(value)
Expand Down
15 changes: 8 additions & 7 deletions lib/active_record/connection_adapters/sqlserver_adapter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -521,16 +521,17 @@ def connection_errors
def initialize_dateformatter
@database_dateformat = user_options_dateformat
a, b, c = @database_dateformat.each_char.to_a

[a, b, c].each { |f| f.upcase! if f == "y" }

dateformat = "%#{a}-%#{b}-%#{c}"
::Date::DATE_FORMATS[:_sqlserver_dateformat] = dateformat
::Time::DATE_FORMATS[:_sqlserver_dateformat] = dateformat
::Time::DATE_FORMATS[:_sqlserver_time] = "%H:%M:%S"
::Time::DATE_FORMATS[:_sqlserver_datetime] = "#{dateformat} %H:%M:%S"
::Time::DATE_FORMATS[:_sqlserver_datetimeoffset] = lambda { |time|

ActiveSupport::DateFormats.register(:_sqlserver_dateformat, dateformat)
ActiveSupport::TimeFormats.register(:_sqlserver_dateformat, dateformat)
ActiveSupport::TimeFormats.register(:_sqlserver_time, "%H:%M:%S")
ActiveSupport::TimeFormats.register(:_sqlserver_datetime, "#{dateformat} %H:%M:%S")
ActiveSupport::TimeFormats.register(:_sqlserver_datetimeoffset, lambda { |time|
time.strftime "#{dateformat} %H:%M:%S.%9N #{time.formatted_offset}"
}
})
end

def version_year
Expand Down
6 changes: 3 additions & 3 deletions test/cases/adapter_test_sqlserver.rb
Original file line number Diff line number Diff line change
Expand Up @@ -157,9 +157,9 @@ class AdapterTestSQLServer < ActiveRecord::TestCase
assert_equal "mdy", dateformat
end

it "has a dateformatter" do
assert Date::DATE_FORMATS[:_sqlserver_dateformat]
assert Time::DATE_FORMATS[:_sqlserver_dateformat]
it "has a date formatter" do
assert ActiveSupport::DateFormats.lookup(:_sqlserver_dateformat)
assert ActiveSupport::TimeFormats.lookup(:_sqlserver_dateformat)
end

it "does a datetime insertion when language is german" do
Expand Down
Loading