如何只更新oracle中d​​atetime字段中的“hour”部分?

时间:2012-04-03 14:35:36

标签: oracle10g

有没有办法只更新DateTime字段中的Hour部分?如果没有,我如何更新Oracle中的时间部分?我试过这个 - >

update tab_name 
set C_Name=to_date('04/03/2012 00:31:00','MM/DD/YYYY HH:MI:SS AM') 
where C_Name1=10484;  

无效,因为我在小时部分更新'00'。

1 个答案:

答案 0 :(得分:3)

如果我知道我只想更新一部分时间,我可能会在适当的位置转换为具有我想要的值的字符串,然后转换回日期。说我希望会议记录为“31”:

update tab_name 
set C_Name=
  to_date( 
    to_char(C_Name, 'MM/DD/YYYY HH24:"31":SS'),
    'MM/DD/YYYY HH24:MI:SS'
  ) 
where C_Name1=10484;  

如果你想修改相对于当前值的时间部分(例如,增加2小时或减去3秒),那么日期arithemtic有一些选择。 Oracle文档非常适合这些事情。