首页 > 解决方案 > 从单个列中的许多日期字符串中获取当前日期的最小值

问题描述

在一个特定的列中,我将所有带有时间戳排序的 ASC 日期分组为带有 ; 的字符串。分隔符,该列可以包含 1 - 50 个日期字符串。从我拥有的日期字符串中,我需要获取最新的日期最小值。

示例,(假设 sysdaye 日期为 2019 年 7 月 25 日)。

07/24/2019 12:02:44; 
07/24/2019 12:03:56; 
07/24/2019 10:02:44; 
07/25/2019 12:02:44; 
07/25/2019 12:03:56.

我不确定我想要的日期值是否在某个位置,我知道它可以用 RegEx 完成。有人可以为此给我一个正则表达式或一个合适的建议,以便在 Oracle SQL 中以任何其他方式执行此操作吗?

标签: sqloracle

解决方案


假设您的所有日期都已排序并且只有一种格式,这是正则表达式解决方案

select
    dates,
    regexp_substr(
        dates,
        concat(
            regexp_substr(regexp_substr(dates, '(\d|\s|/|:|-)+$'), '(\d|/|:|-)+'),
            '(\d|\s|/|:|-)+')
    ) as max_date_min_datetime
from
    <table_name>

推荐阅读