You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将CREATED_DATE_TIME的时间戳复制到DUE_DATE_TIME列(保留原日期)

替换DUE_DATE_TIME的时间部分为CREATED_DATE_TIME的时间

需求说明:更新MY_TABLE中所有记录的DUE_DATE_TIME字段,保留该字段原有的日期部分,将时间部分替换为CREATED_DATE_TIME字段的时间部分。

不同数据库的实现语句

以下是主流数据库对应的更新SQL:

MySQL/MariaDB

通过DATE()提取DUE_DATE_TIME的日期部分,TIME()提取CREATED_DATE_TIME的时间部分,再拼接成新的日期时间值:

UPDATE MY_TABLE
SET DUE_DATE_TIME = CONCAT(DATE(DUE_DATE_TIME), ' ', TIME(CREATED_DATE_TIME));

SQL Server

利用DATEADD和DATEDIFF组合,保留DUE_DATE_TIME的日期基准,加上CREATED_DATE_TIME的时间部分:

UPDATE MY_TABLE
SET DUE_DATE_TIME = DATEADD(day, DATEDIFF(day, 0, DUE_DATE_TIME), CAST(CREATED_DATE_TIME AS TIME));

Oracle

通过TRUNC()获取DUE_DATE_TIME的纯日期,再加上CREATED_DATE_TIME的时间偏移量:

UPDATE MY_TABLE
SET DUE_DATE_TIME = TRUNC(DUE_DATE_TIME) + (CAST(CREATED_DATE_TIME AS TIMESTAMP) - TRUNC(CAST(CREATED_DATE_TIME AS TIMESTAMP)));

验证建议

执行更新前,先通过SELECT语句验证结果是否符合预期,以MySQL为例:

SELECT 
  ID,
  CREATED_DATE_TIME,
  DUE_DATE_TIME,
  CONCAT(DATE(DUE_DATE_TIME), ' ', TIME(CREATED_DATE_TIME)) AS updated_due_date
FROM MY_TABLE;

注意:如果日期字段是字符串类型,需要先转换为日期时间类型再进行处理,避免格式错误。

内容的提问来源于stack exchange,提问作者Dibyajyoti Behera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 09:23:23