2010-08-04 2 views
6

Так что мне нужно обновить некоторые даты в базе данных Oracle, это поле datetime, но я хочу только обновить дату и оставить время как есть ... Там запрос выглядит следующим образом:Обновить только дату в поле datetime в Pl/SQL

update table 
    SET field = to_date('07312010','MMDDYY'); 

но это переопределение часы, минуты и секунды с поля, я хочу, чтобы обновить дату, но я хочу час, чтобы остаться такой же, какие мысли?

ответ

19

Вы могли бы использовать:

UPDATE TABLE 
    SET field = TO_DATE('07312010' || ' ' || TO_CHAR(field, 'HH24:MI:SS'), 
         'MMDDYY HH24:MI:SS'); 
+0

Спасибо, это сработало отлично! :) – Gotjosh

-1

В Oracle пустой небольшая проблема, я изменил его немного.

/* Formatted on 4/26/2017 5:56:31 AM (QP5 v5.115.810.9015) */ 

UPDATE telco_attendee 
    SET startdate = 
TO_DATE( ( TO_CHAR(startdate, 'DD/MM/YYYY') 
|| 
TO_CHAR(starttime, 'HH24:MI:SS') ) ,'DD/MM/YYYYHH24:MI:SS') 
+0

Вопрос конкретно относится к *** datetime *** field; нет поля * time *, например 'starttime' в вашем * ответе * ... –

Смежные вопросы