分数和月份的Sql swapp值

时间:2017-11-10 11:23:22

标签: sql oracle

使用java插入和更新表时,我不小心混淆了分钟和月份值。现在我在表格中有条目,如:

end_date
12.01.2016 00:05:00
27.01.2017 00:09:00
16.01.2010 00:07:00

我可以使用以下方式截断时间部分:

UPDATE myTable
SET end_date = trunc(end_date)
WHERE someCondition;

给了我

12.01.2016 00:00:00
27.01.2017 00:00:00
16.01.2010 00:00:00

但在我这样做之前,我想用月份值替换月份值,以便我最终拥有:

12.05.2016 00:00:00
27.09.2017 00:00:00
16.07.2010 00:00:00

我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果值是日期 - 并且日期在两个方向都有效 - 那么最简单的方法可能是来回转换字符串:

update myTable
    set end_date = to_date(to_char(end_date, 'DD.MI.YYYY'), 'DD.MM.YYYY')
    where . . .;