在Oracle中将日期从19XX更新到20XX

时间:2018-09-13 10:01:13

标签: sql oracle

我有一个表格,其中日期输入错误的是19XX,而不是20XX。

是否可以进行更新查询,以修改原始日期小于01/01/2000的特定字段中从19XX到20XX(英国日期格式)的任何值?

例如

ID    FieldA
123   23/11/1917

将成为

ID    FieldA
123   23/11/2017

2 个答案:

答案 0 :(得分:0)

如果FieldAdate,则可以执行以下操作:

select (case when fieldA < date '2000-01-01'
             then fieldA + interval '100' year(3)
             else fieldA
        end)

答案 1 :(得分:0)

您可以利用缩短的YY日期格式。引用文档:

  

如果您将TO_DATE函数与YY日期时间格式元素一起使用,   那么返回的年份始终与前两位相同   本年度。

因此,to_date(to_char(fieldA, 'ddmmyy'), 'ddmmyy')应该做您需要的事情。不过请注意,如果某些年份的年份小于1900或超过2100,它们也会被转换。