同一列,数值的格式不同,如何转换

如图,这个是字符串型的日期,有两个不同的格式,因为格式不用,想用SUBSTR截取,然后用TO_DATE转换成日期都不行,不知道哪个大神有好的方式不,数据库是ORCLE

您好!针对您的问题,可以使用Oracle中内置的函数TO_CHAR和TO_DATE来进行转换。

首先,使用TO_CHAR函数将日期型的数值转换为字符型,并将所有数值格式化为相同的格式,比如:

SELECT TO_CHAR(date_col, 'YYYY-MM-DD') AS new_date_col
FROM your_table;

这样可以将所有的日期格式化为‘YYYY-MM-DD’的格式,方便后续的处理。

然后,使用TO_DATE函数将字符型的日期再次转换为日期型数据,如下所示:

SELECT TO_DATE(new_date_col, 'YYYY-MM-DD') AS date_col
FROM
(
    SELECT TO_CHAR(date_col, 'YYYY-MM-DD') AS new_date_col
    FROM your_table
);

注意,这里需要将前面的格式化后的日期列作为一个子查询中的一列,然后再使用外部的TO_DATE函数来进行转换。

希望能够帮助到您!