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

SQL如何仅更新datetime类型列的时间部分

仅更新datetime字段时间部分的SQL实现方案

核心逻辑为提取原有datetime值的日期部分,拼接需要的23:59:59时间部分即可实现需求,不同数据库的语法有差异,对应方案如下:

执行前验证(必做,避免数据误改)

先执行SELECT语句确认修改结果符合预期,以MySQL为例:

SELECT 
  id,
  你的日期字段名 AS 修改前值,
  DATE(你的日期字段名) + INTERVAL '23:59:59' HOUR_SECOND AS 修改后值
FROM 你的表名
WHERE id > 38;

确认结果无误后再执行UPDATE语句。


各数据库UPDATE写法

MySQL

UPDATE 你的表名
SET 你的日期字段名 = DATE(你的日期字段名) + INTERVAL '23:59:59' HOUR_SECOND
WHERE id > 38;

PostgreSQL

UPDATE 你的表名
SET 你的日期字段名 = 你的日期字段名::DATE + TIME '23:59:59'
WHERE id > 38;

SQL Server

UPDATE 你的表名
SET 你的日期字段名 = DATEADD(SECOND, 86399, CAST(CAST(你的日期字段名 AS DATE) AS DATETIME))
WHERE id > 38;

Oracle

UPDATE 你的表名
SET 你的日期字段名 = TRUNC(你的日期字段名) + INTERVAL '23:59:59' HOUR TO SECOND
WHERE id > 38;

注意事项

  • 所有写法里的你的表名、你的日期字段名需要替换为你实际的表和字段名称
  • 生产环境操作建议开启事务,验证修改结果后再提交,避免数据丢失

内容的提问来源于stack exchange,提问作者Jin Huh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:09:04