仅从 oracle sql 更新月份和年份的简单语句
Posted
技术标签:
【中文标题】仅从 oracle sql 更新月份和年份的简单语句【英文标题】:Simple statement to update only the month and year from oracle sql 【发布时间】:2019-07-06 17:06:10 【问题描述】:我正在使用 Oracle SQL,并且我有不同月份和年份的日期。但是,我需要一个简单的更新语句来更新到特定的月份和年份而不更改日期。
我尝试将 add_months 与 months_between 一起使用,但它会引发一些错误,说明数据类型不一致。所以这行不通。
我尝试过的命令:
UPDATE MYDATE=ADD_MONTHS(MYDATE,MONTHS_BETWEEN(TRUNC('Jun','mm'),trunc(MYDATE,'mm)))
例如:
MYDATE
01/02/18
03/05/17
预期结果:
01/06/19
03/06/19
【问题讨论】:
Oracle SQL Create Date from Parts的可能重复 【参考方案1】:你可以使用
update tab
set mydate=to_date(to_char(mydate,'dd')||'06'||to_char(sysdate,'yyyy'),'ddmmyyyy')
因为month
是固定的,year
是当前的
Demo
或者,你可以试试
update tab
set mydate=add_months( mydate, round(months_between(
to_date('2019-06-'||to_char(mydate,'dd'),'yyyy-mm-dd'),mydate)) )
add_months
和 months_between
在一起
Demo
【讨论】:
您好,我尝试执行此操作,但它已经运行了很长时间。还有其他说法吗? @user9340817 嗨,我添加了另一个案例。以上是关于仅从 oracle sql 更新月份和年份的简单语句的主要内容,如果未能解决你的问题,请参考以下文章