仅更新 Pl/SQL 中日期时间字段的日期

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案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 这样的时间字段...

以上是关于仅更新 Pl/SQL 中日期时间字段的日期的主要内容,如果未能解决你的问题,请参考以下文章

创建一个表,其中动态 PL/SQL 中的“日期条件”

SQL记录-PLSQL日期与时间

pl/sql 存储过程从日期等于存储过程参数的表中进行选择

如何在 PL SQL 中添加带有 INSERT INTO SELECT 的日期?

ORACLE PL/SQL - 使用 SYSDATE 检索特定日期的数据时出现检索问题

PL/SQL oracle,使用日期和时间的测试窗口