Skip to content Skip to sidebar Skip to footer

Rails Model.save Get Datetime Convertion Error: "a Conversão De Um Tipo De Dados Varchar Em Um Tipo De Dados..."

I've a problem with SQL Server and Rails. Rails and SQL Server seems to save date format in different ways: Rails way: 2011-12-15 SQL Server: 15-12-2011 As I'm running SQL Server

Solution 1:

it's dead simple...just create a file under config/initializer with the name you want, I use datetime_format.rb. With this line:

Time::DATE_FORMATS[:db]= '%d-%m-%Y %H:%M:%S'

This will overwrite the default datetime format for the DB.

Solution 2:

Just found a solution:

I've created a file named "sqlserver_dateformat.rb" in Rails' lib/ folder and added this:

classActiveRecord::Base
  before_save :set_sqlserver_dateformatdefset_sqlserver_dateformat
    ActiveRecord::Base.connection.exec_query("set DATEFORMAT ymd")
  endend

Now on everymodel I've required it:

require'sqlserver_dateformat'classUser < ActiveRecord::Base# ...end

I known, it's a monkey patch, but hey, it works! =]

Post a Comment for "Rails Model.save Get Datetime Convertion Error: "a Conversão De Um Tipo De Dados Varchar Em Um Tipo De Dados...""