【发布时间】:2018-11-16 22:35:47
【问题描述】:
我在 Postgresql 数据库中存储了两个时间列:open_time 和 close_time。我试图找出忽略日期的当前时间是否在两个时间之间,忽略日期。
此代码比较日期和时间:
current_time = Time.now
if current_time.between?(store.open_time, store.close_time)
puts "IN BETWEEN"
end
它不起作用,例如,current_time # => 2018-06-06 23:59:49 -0600 和 open_time # => 2000-01-01 22:59:00 UTC。
如何让它不包括日期,只比较时间?
【问题讨论】:
-
这没有意义。时间是比日期更精确的概念。如果不知道它是哪个日期,你就不可能有一个特定的时间。
-
@sawa 嗯? Postgres perfectly allows 存储没有日期的时间,而 ruby 没有为它提供方便的包装器这一事实并不意味着“时间更精确”。
DateTime是。 -
Comparing times only, without dates? 是一个类似的问题,虽然不是 Postgres 特定的。
-
@Stefan,您提供的链接上的评论表明,较早的问题实际上与 Postgres 相关,但将这个问题视为重复问题将是一种耻辱,因为我不相信任何之前的答案是正确的。
-
我真的很感谢所有的答案!我最终从所有答案中汲取了灵感,所以我不确定要标记哪一个。
标签: ruby-on-rails ruby postgresql date time