sql - 如何使用 PLSQL 仅更改年份而不更改日期或月份来更新日期列?

标签 sql oracle datetime date-arithmetic

我有一个包含信用卡记录的数据库表。其中一个字段是日期字段。如果年份小于 2010 年,我想通过将日期的年份部分更改为 2011 年来更新此字段。据我所知,PLSQL 具有时间和月份的功能,但与年份无关(据我所知)。

最佳答案

这显示了如何

with cc as(
select to_date('12-jan-1999') as cdate from dual union all
select to_date('12-jan-1921') as cdate from dual union all
select to_date('12-jan-1900') as cdate from dual union all
select to_date('12-jan-2000') as cdate from dual union all
select to_date('12-jan-2010') as cdate from dual
)
select  to_date( to_char(cdate,'DD-MON')  ||'-2011','DD-MON-YYYY')
from cc
where cdate < to_date('01-JAN-2010','DD-MON-YYYY')
/

关于sql - 如何使用 PLSQL 仅更改年份而不更改日期或月份来更新日期列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163676/

相关文章:

MySQL 替换字符串 SUM 然后总计

sql - 如果指定 SELECT DISTINCT 错误,则 ORDER BY 项必须出现在选择列表中

python-3.x - Python pandas to_datetime 工作不一致 : Why are month and day mixed up?

python - 如何合并两个具有不同时间戳的 Pandas

r - as.Date 如果申请或不申请则返回不同的格式

php - 我如何创建一个 MySQL 事件来自动添加从我的笔记本电脑中新移动的图像文件?

mysql - 从多个表中选择多个值的计数

oracle - 将 sqlplus 值传递给 shell 变量

sql - Oracle 错误 ORA-00971

sql - 具有动态参数的Oracle Lag函数