在Pl / SQL中仅更新datetime字段上的日期

时间:2010-08-04 19:03:25

标签: sql oracle plsql

所以我需要在Oracle数据库上更新一些日期,该字段是一个日期时间,但我只想更新日期并保留时间,因为它...查询是这样的:

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

但它超越了现场的小时,分​​钟和秒钟,我想更新日期,但我希望小时保持不变,任何想法?

2 个答案:

答案 0 :(得分:19)

您可以使用:

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

答案 1 :(得分:-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')