我通過Rails將DateTime.now保存到MySQL DB的datetime列中,但似乎保存了不正確的值。 保存的值是過去幾十秒。通過Rails的update_all方法將錯誤時間保存到MySQL DB中
我的代碼:
Rails.logger.info("Start: Calendars.where('user_id = ? and calendar_id = ?', @user.id, calendar_id)")
target = Calendars.where('user_id = ? and calendar_id = ?', @user.id, calendar_id)
Rails.logger.info("End: Calendars.where('user_id = ? and calendar_id = ?', @user.id, calendar_id)")
Rails.logger.info("last_clone_at update start")
now = DateTime.now
target.update_all(last_clone_at: now)
Rails.logger.info(now.strftime("%Y-%m-%dT%H:%M:%S")) # Output by DateTime.now
Rails.logger.info(target.first.last_clone_at) # Saved datetime value
日誌輸出:
2014-06-09 14:39:03 INFO last_clone_at update start
2014-06-09 14:39:03 INFO 2014-06-09T14:39:03 # Output by DateTime.now
2014-06-09 14:39:03 INFO 2014-06-09 14:38:00 +0900 # Saved datetime value
我的日曆模式就是如下:
class Calendars < ActiveRecord::Base
# Validations
validates :user_id, presence: true
validates :calendar_id, presence: true, uniqueness: { scope: :user_id }
end
我用:
- 紅寶石2.0
- 滑軌4.0.5
- MySQL的37年5月5日(從Ubuntu的14.04庫)
更新: 日誌輸出的其它實例:
2014-06-09 16:28:54 INFO last_clone_at update start
2014-06-09 16:28:54 INFO 2014-06-09T16:28:54
2014-06-09 16:28:54 INFO 2014-06-09 16:28:01 +0900
2014-06-09 16:28:55 INFO last_clone_at update start
2014-06-09 16:28:55 INFO 2014-06-09T16:28:55
2014-06-09 16:28:55 INFO 2014-06-09 16:28:02 +0900
2014-06-09 16:28:57 INFO last_clone_at update start
2014-06-09 16:28:57 INFO 2014-06-09T16:28:57
2014-06-09 16:28:57 INFO 2014-06-09 16:28:04 +0900
UPDATE2: 時間(...)
2014-06-09 17:22:06 INFO開始:Calendars.where('user_id =? ('user_id =?和calendar_id =?',@ user.id,calendar_id)
嘗試設置日誌級別進行調試(以便執行的sql語句被記錄) - 看到這些會很有趣。 –
這是個好主意。我將查看SQL日誌。 –