我正在尝试将几个日期更新到月底。但是,我的表有两种不同的日期格式("DD-MON-YY"one_answers"YYYYMMDD"(。如何在更新声明中更新两个日期?另外,我希望新的日期是YYYYMMDD格式。
Update MY_TABLE
set MY_DATE = TO_CHAR(LAST_DAY(TO_DATE(MY_DATE,'DD-MON-YY')),'YYYYMMDD');
正如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')