ruby-on-rails - Rails 中的时间数据类型

标签 ruby-on-rails ruby database

我使用带有 stime 属性(指开始时间)的 rails 创建了一个数据库。它的类型是Time。当我添加一条记录时:

stime = "10:10"

它被添加为:

"stime":"2000-0101T10:10:00.000Z"

我只想要时间,而不是日期。我认为这是 TimeDateTime 之间的区别。谁能告诉我问题出在哪里?

最佳答案

正如文档所述,事实并非如此。

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/

相关文章:

sql-server - 如何获取sql server 2005中数据库连接的详细列表?

ruby-on-rails - 寻找RSpec的GUI

javascript - 将 collection_select 菜单选项链接到过滤方法 - Ruby on Rails

ruby-on-rails - 帮助 HAML : Mixing text and other HTML tags

ruby-on-rails - Mac OSX 10.5 "good enough"上是否默认安装了用于 Rails 开发的 Ruby?

ruby - 括起括号

ruby-on-rails - Minitest::Mock#expect 没有特定的顺序?

ruby - 在 sinatra 中的路由定义中使用参数

Python:将多个 .txt 文件解析为单个 .csv 文件?

ruby-on-rails - 属性和列有什么区别?