我使用带有 stime
属性(指开始时间)的 rails 创建了一个数据库。它的类型是Time
。当我添加一条记录时:
stime = "10:10"
它被添加为:
"stime":"2000-0101T10:10:00.000Z"
我只想要时间,而不是日期。我认为这是 Time
和 DateTime
之间的区别。谁能告诉我问题出在哪里?
最佳答案
正如文档所述,事实并非如此。
Time is an abstraction of dates and times. Time is stored internally as the number of seconds with fraction since the Epoch, January 1, 1970 00:00 UTC.
您可以做几件事:
- 将其存储为字符串并进行正则表达式验证。
- 如果您正在使用 Postgres 并且不介意依赖它,您可以使用
time
类型。这将允许您执行以下操作:YourModel.where("stime > '13:00:00'")
。 - 从午夜开始以秒为单位存储一天中的时间。这将需要您添加一些用于创建数据的辅助方法和用于查询数据的范围。您可能会找到 ActiveSupport 的 extension on numeric values有帮助。
关于ruby-on-rails - Rails 中的时间数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36605348/