【发布时间】:2013-05-01 16:01:27
【问题描述】:
我有一个带有 unique 日期时间字段的 postgres 表。 我想使用/创建一个函数,该函数将日期时间值作为参数,并返回与传递的日期时间值最接近的日期时间相对(但不等于)的行 ID。第二个参数可以指定 before 或 after 传递的值。
理想情况下,本机datetime functions 的某种组合可以满足此要求。否则它必须是一个自定义函数。
问题:在行集合上查询相对日期时间的方法是什么?
【问题讨论】:
-
泰德,你的问题是什么?如果您“仍在工作”,为什么要创建此帖子?
-
如果有两条记录共享相同的日期时间值,并且都位于所需值的同一侧怎么办?
-
@MaksimKolesnikov 我添加了一个更清晰的问题。
-
@wildplasser 日期时间列是唯一的,因此排除了这种情况。但在更一般的情况下,我会返回第一个结果,或所有符合条件的结果。
-
好吧:有三种可能性:1) 在子查询中使用
NOT EXISTS2) 与MIN()或MAX()相同。 3) 带有row_number() 和/或lead/lag() 的子查询。必须镜像前两个查询以允许上述/以下情况,第三个可能不允许。 (我不太确定第三个)
标签: postgresql datetime