我正试着把几个日期更新到月底。但是,我的表有两种不同的日期格式(‘DD-MON-YY’和‘YYYYMMDD’)。如何在UPDATE语句中更新这两个日期?另外,我希望新的日期是‘YYYYMMDD’格式。
Update MY_TABLE set MY_DATE = TO_CHAR(LAST_DAY(TO_DATE(MY_DATE,'DD-MON-YY')),'YYYYMMDD');
6fe3ivhb1#
正如David在评论中指出的那样,这里的“真正”解决方案是添加一个date列并使用它。如果不能这样做,您可以根据-字符的存在来区分旧数据和新数据:
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')
1条答案
按热度按时间6fe3ivhb1#
正如David在评论中指出的那样,这里的“真正”解决方案是添加一个
date
列并使用它。如果不能这样做,您可以根据-
字符的存在来区分旧数据和新数据: