【问题标题】:Update only date on datetime field on Pl/SQL仅更新 Pl/SQL 中日期时间字段的日期
【发布时间】:2010-08-04 19:03:25
【问题描述】:

所以我需要更新 Oracle 数据库上的一些日期,该字段是日期时间,但我只想更新日期并保持时间不变...查询如下:

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

但它覆盖了现场的小时、分钟和秒,我想更新日期但我希望小时保持不变,有什么想法吗?

【问题讨论】:

    标签: sql oracle plsql


    【解决方案1】:

    你可以使用:

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

    【讨论】:

      【解决方案2】:

      在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')   
      

      【讨论】:

      • 这个问题具体是关于 datetime 字段的;您的答案中没有像starttime 这样的时间字段...
      猜你喜欢
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-12
      相关资源
      最近更新 更多