TO_CHAR 未能在更新中设置特定格式
TO_CHAR failing to set specific format in update
我正在尝试在遗留代码使用 DDMM 格式 DATETIME 作为字符的记录中设置特定字段。我希望能够找到一个匹配某物的特定值,并从根本上改变那个字段。超级简单的东西,对吧?
update MY_TABLE
set SOME_DATETIME = to_char('0111', 'DDMM')
where
FIELDA = 'AA'
and FIELDB = '2'
and to_char(SOME_DATETIME, 'DDMM') = '0311'
and FIELDC = 'ABC'
我知道一个事实,如果我在 where 子句中使用 to_char(SOME_DATETIME, 'DDMM') = '0311' 进行查询,但我似乎无法能够改变那个领域。我收到以下错误:
** ERROR: DBD::Oracle::st execute failed: ORA-01481: invalid number format model
我发现了很多示例,其中人们在查询中克服了此错误消息,但在 "set" 中却没有。
我是 Oracle 的新手,希望得到一些帮助。
谢谢
错误在这部分"set SOME_DATETIME = to_char('0111', 'DDMM')"。当您使用 to_char 函数并指定日期格式时,它需要一个日期。他现在得到什么?一个字符串。将其转换为某些 Oracle 日期并重试。
例如:
select to_char(to_date('2018-01-01','yyyy-mm-dd'), 'DDMM') 来自双
SOME_DATETIME
的数据类型似乎是 DATE
,因为查询适用于 to_char(SOME_DATETIME, 'DDMM') = '0311'
转换。然后适当使用以下:
update MY_TABLE
set SOME_DATETIME = to_date('0111', 'DDMM')
where FIELDA = 'AA'
and FIELDB = '2'
and to_char(SOME_DATETIME, 'DDMM') = '0311'
and FIELDC = 'ABC';
真正的转换应该由 to_date
而不是 to_char
执行。
Select TO_CHAR(date_time_Column,'DD\MM\YYYY HH24:MI)
是改进自动输出和格式设置的好方法
我正在尝试在遗留代码使用 DDMM 格式 DATETIME 作为字符的记录中设置特定字段。我希望能够找到一个匹配某物的特定值,并从根本上改变那个字段。超级简单的东西,对吧?
update MY_TABLE
set SOME_DATETIME = to_char('0111', 'DDMM')
where
FIELDA = 'AA'
and FIELDB = '2'
and to_char(SOME_DATETIME, 'DDMM') = '0311'
and FIELDC = 'ABC'
我知道一个事实,如果我在 where 子句中使用 to_char(SOME_DATETIME, 'DDMM') = '0311' 进行查询,但我似乎无法能够改变那个领域。我收到以下错误:
** ERROR: DBD::Oracle::st execute failed: ORA-01481: invalid number format model
我发现了很多示例,其中人们在查询中克服了此错误消息,但在 "set" 中却没有。
我是 Oracle 的新手,希望得到一些帮助。
谢谢
错误在这部分"set SOME_DATETIME = to_char('0111', 'DDMM')"。当您使用 to_char 函数并指定日期格式时,它需要一个日期。他现在得到什么?一个字符串。将其转换为某些 Oracle 日期并重试。 例如:
select to_char(to_date('2018-01-01','yyyy-mm-dd'), 'DDMM') 来自双
SOME_DATETIME
的数据类型似乎是 DATE
,因为查询适用于 to_char(SOME_DATETIME, 'DDMM') = '0311'
转换。然后适当使用以下:
update MY_TABLE
set SOME_DATETIME = to_date('0111', 'DDMM')
where FIELDA = 'AA'
and FIELDB = '2'
and to_char(SOME_DATETIME, 'DDMM') = '0311'
and FIELDC = 'ABC';
真正的转换应该由 to_date
而不是 to_char
执行。
Select TO_CHAR(date_time_Column,'DD\MM\YYYY HH24:MI)
是改进自动输出和格式设置的好方法