【问题标题】:Simple statement to update only the month and year from oracle sql仅从 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

【问题讨论】:

标签: sql oracle date sql-update


【解决方案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_monthsmonths_between 在一起

Demo

【讨论】:

  • 您好,我尝试执行此操作,但它已经运行了很长时间。还有其他说法吗?
  • @user9340817 嗨,我添加了另一个案例。
猜你喜欢
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-09
  • 1970-01-01
  • 2022-01-19
  • 2018-02-16
  • 1970-01-01
相关资源
最近更新 更多