Как обновить только «часовую» часть в поле datetime в oracle? - PullRequest
2 голосов
/ 03 апреля 2012

Есть ли способ обновить только часть часа в поле DateTime? Если нет, как мне обновить часть времени в 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 Ответ

3 голосов
/ 03 апреля 2012

Если бы я знал, что хочу обновить только одну часть времени, я, вероятно, преобразовал бы в строку со значением, которое я хочу в соответствующем месте, а затем преобразовал бы обратно в дату. Скажем, я хотел, чтобы минуты были "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 секунды), то есть несколько вариантов арифметики даты. Документация Oracle очень хороша для этих вещей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...