帮我看oracle语句这样写可以吗

来源:百度知道 编辑:UC知道 时间:2024/05/31 23:38:55
update table_status_notify set UpdateTime=TO_NUMBER(sysdate)
它会报错,invalid number错误。怎么回事,应该怎么改? 这个字段updatetime是number类型的。
为什么要先tochar 再tonumber呢? 我只想知道这个问题。难道不能直接tonumber吗?

这么说吧,select sysdate from dual;
输出的是:2009-08-04 17:10:00
你想想吧,这样的格式能转换成numver类型的吗,肯定是不可能的
select to_char(sysdate,'yyyymmddhhmmss') from dual;
输出的是:20090804050837
再重新转换一下:select to_number(to_char(sysdate,'yyyymmddhhmmss'))from dual;
就可以了

update table_status_notify set UpdateTime=TO_NUMBER(TO_CHAR(sysdate, 'yyyyMMdd'))

yyyyMMdd是系统时间的格式,也可以指定成其他格式