やったこと
時間を取り扱う時、usec を 0 でセットする方法を試します。
例えば、rspec など自動テストをする時
- MySQL に保存する
- 値を取り出す
とした場合、usec が削り落とされ 0 になってしまうことがあります。
確認環境
$ ruby --version
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin17]
$ rails --version
Rails 5.2.3
調査
始めは、usec が設定されていますが、change
を使うことで 0 に設定できました。
$ rails c
Running via Spring preloader in process 42292
Loading development environment (Rails 5.2.3)
irb(main):001:0> a = Time.current
=> Sun, 16 Feb 2020 01:19:08 JST +09:00
irb(main):002:0> a.usec
=> 87388
irb(main):003:0> a.change(usec: 0).usec
=> 0