我有一个表格,其中日期输入错误的是19XX,而不是20XX。
是否可以进行更新查询,以修改原始日期小于01/01/2000的特定字段中从19XX到20XX(英国日期格式)的任何值?
例如
ID FieldA
123 23/11/1917
将成为
ID FieldA
123 23/11/2017
答案 0 :(得分:0)
如果FieldA
是date
,则可以执行以下操作:
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,它们也会被转换。