相关疑难解决方法(0)

在PostgreSQL中执行这个小时的操作查询

我在RoR堆栈中,我必须编写一些实际的SQL来完成所有"打开"记录的查询,这意味着当前时间在指定的操作时间内.在hours_of_operations表中有两integeropens_oncloses_on存储一个工作日,以及两个time字段opens_atcloses_at存储当天的相应时间.

我做了一个查询,将当前日期和时间与存储的值进行比较,但我想知道是否有一种方法可以转换为某种日期类型并让PostgreSQL完成剩下的工作?

查询的内容是:

WHERE (
 (

 /* Opens in Future */
 (opens_on > 5 OR (opens_on = 5 AND opens_at::time > '2014-03-01 00:27:25.851655'))
 AND (
 (closes_on < opens_on AND closes_on > 5)
 OR ((closes_on = opens_on)
 AND (closes_at::time < opens_at::time AND closes_at::time > '2014-03-01 00:27:25.851655'))
 OR ((closes_on = 5)
 AND (closes_at::time > '2014-03-01 00:27:25.851655' AND closes_at::time < opens_at::time)))
 OR

 /* Opens in Past */
 (opens_on < …
Run Code Online (Sandbox Code Playgroud)

sql postgresql ruby-on-rails constraints range-types

11
推荐指数
1
解决办法
2864
查看次数