日期:2014-05-17  浏览次数:20730 次

求助oracle若干数据修改的语句
本帖最后由 hanwenqiu 于 2013-05-24 11:20:34 编辑


根据上图中c_clock_date(timstamp格式),在某个时间区间内,增量一定时间(打比方20分钟,或者2小时)。且c_work_date(timestamp格式)也为某个时间区间内(如2013-05-21)

这是我写的,但是似乎有点语法上问题。无法执行。请高手指点。

update T_R_UM_OB_CLOCK_LOG set C_CLOCK_DATE=to_date(to_char(C_CLOCK_DATE,'YYYY-MM-DD')||'08:30','YYYY-MM-DD:hh24:mi') where to_char(C_CLOCK_DATE,'hh24:mi')>='07:00' and to_char(C_CLOCK_DATE,'hh24:mi')<='08:09'  where c_work_date=to_char('2013-05-21','YYYY-MM-DD')

------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

我x,2个where ,而且 to_char('2013-05-21','YYYY-MM-DD') 这什么玩意?

where c_work_date=to_char('2013-05-21','YYYY-MM-DD')
改为
and c_work_date = to_date('2013-05-21', 'YYYY-MM-DD');


这么改的话,是将这个时间段内的所有数据,都改成一个固定时间了??

如果要实现,根据column的值+20分钟?set那里应该如何写呢?


感觉你的需求说的比较乱?

某个时间区间 ,C_CLOCK_DATE是小时时间段? c_work_date是某天?
是的,

抱歉。可能是我专业语言不够准确,用自然语言说:c_work_date为某天时 且 c_clock_date在一个小区间范围内时,将c_clock_date增加20分钟


update T_R_UM_OB_CLOCK_LOG
   set C_CLOCK_DATE = C_CLOCK_DATE + 1 / 72
 where to_char(C_CLOCK_DATE, 'hh24:mi') >= '07:00'
   and to_char(C_CLOCK_DATE, 'hh24:mi') <= '08:09'
   and to_char(c_work_date, 'yyyy-mm-dd') = '2013-05-21';