如果所选日期 >= 到 current_date,则使用最小日期更新日期字段,除非所有日期 >= 到当前日期

Posted

技术标签:

【中文标题】如果所选日期 >= 到 current_date,则使用最小日期更新日期字段,除非所有日期 >= 到当前日期【英文标题】:Updating date field with min date from selected dates if they are >= to current_date, except when all dates are >= to current date 【发布时间】:2021-01-16 17:19:08 【问题描述】:

我想更新 Date1 列的内容以反映每一行中最旧的日期,除非日期已经过去(Date1

ID Date 1 Date 2 Date 3 Date 4
001 01/14/2022 01/14/2022 01/15/2022 01/16/2022
002 04/15/2019 04/15/2019 01/10/2021 01/10/2021

我正在使用

    update mytable t
    set date1 = (
        select min(date)
        from (values (date2), (date3), (date4)) d(dt)
        where dt >= current_date    
)

我遇到的唯一问题是 所有 可用日期早于当前日期。在这种情况下,它会用 null 覆盖 date1 列中的值,这并不理想。我希望查询在这些情况下保持 date1 字段不变。

【问题讨论】:

请告诉我们更多关于您使用的软件的信息? Postgres 和 SQL? 是的,我在 PgAdmin 4 中使用 PostgreSQL。 【参考方案1】:

想通了:

   update mytable t
    set date1 = coalesce ((
        select min(date)
        from (values (date2), (date3), (date4)) d(dt)
        where dt >= current_date    
), date 1);

【讨论】:

以上是关于如果所选日期 >= 到 current_date,则使用最小日期更新日期字段,除非所有日期 >= 到当前日期的主要内容,如果未能解决你的问题,请参考以下文章

如果在第二次单击时未选择日期并出现日期验证问题,则日期选择器会从日期选择器文本框中清除所选值

js 如何根据所选时间判断是星期几?

Jquery datepicker下拉列表显示当前日期而不是所选日期

使用 Jquery UI Datepicker 重定向到 URL:根据所选日期更改 URL 值

使用 Ajax 和 JavaScript 从数据库中获取所选日期之间的数据

jQuery Datepicker - 根据所选选项刷新可选择的日期