Oracle SQL TO_DATE-两种日期格式

xvw2m8pv  于 2022-09-18  发布在  Java
关注(0)|答案(1)|浏览(129)

我正试着把几个日期更新到月底。但是,我的表有两种不同的日期格式(‘DD-MON-YY’和‘YYYYMMDD’)。如何在UPDATE语句中更新这两个日期?另外,我希望新的日期是‘YYYYMMDD’格式。

Update MY_TABLE
set MY_DATE = TO_CHAR(LAST_DAY(TO_DATE(MY_DATE,'DD-MON-YY')),'YYYYMMDD');
6fe3ivhb

6fe3ivhb1#

正如David在评论中指出的那样,这里的“真正”解决方案是添加一个date列并使用它。如果不能这样做,您可以根据-字符的存在来区分旧数据和新数据:

UPDATE my_table
SET    my_date = 
       TO_CHAR(LAST_DAY(TO_DATE(my_date, CASE WHEN my_date LIKE '%-%' 
                                              THEN 'DD-MON-YY'
                                              ELSE 'YYYYMMDD' 
                                         END)),
                'YYYYMMDD')

相关问题