datetime 类型在mysql中默认精度只到秒解决⽅法如下
在Rails 4.2的Release Notes有下⾯⼀句话:
Added support for fractional seconds for MySQL 5.6 and above
可以看出Rails 4.2已经⽀持⽇期精度功能,关于mysql的fractional seconds功能可以
参考 mysql reference.
我们在Rails可以通过添加migrate⽂件来解决,具体如下:
$ rails g migration ChangeCreatedAtToAuctionBids
在⽣成的⽂件中修改如下
# mysql 5.6.4以上的版本⽀持分数精度(fractional seconds),默认mysql精度只到
秒
# limit 设为 6 精确到微妙;如将limit 修改为 3 则精确到毫秒
class ChangeCreatedAtToAuctionBids < ActiveRecord::Migration
def change
# limit 置为 3 则精确到毫秒
change_column :auction_bids, :created_at, :datetime, limit: 3
end
end
$ rake db:migrate
#新建⽂件config/initializers/filename.rb
Time::DATE_FORMATS[:db] = "%Y-%m-%d %H:%M:%S.%3N"