日期和更新 PostgreSQL 之间的最小天数差异

Minimum of Days Difference between Dates and Update PostgreSQL

我有这样的情况,我需要找出哪个记录​​在至少 2 个日期之间的天数差异最小。喜欢 -

Table数据就好

输入参数:[aDate = 12-Nov-2020, Infold = 2]

结果应该是:

需要找到输入日期和现有日期之间的日期差异,找到具有最小天数差距的记录。

我正在这样尝试:

select/update query
where <here not sure what to put> = MIN ( select existing.aDate::date - input.aDate::date from table, select input.aDate::date - existing.aDate::date from table )

我只需要识别那条特定的记录,请指教。

您可以使用 order bylimit 来识别与给定日期“最接近”的记录:

select t.*
from mytable t
order by abs(adate - date '2020-11-12'))
limit 1

如果你想要一个update语句:

update mytable t
set infold = 2
from (
    select pk 
    from mytable 
    order by abs(adate - date '2020-11-12'))
    limit 1
) t1
where t1.pk = t.pk