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

如何在SQL中为datetime类型列调整时分秒数值?

不同数据库实现UpdatedTime时分秒调整为23:59:59的方案

以下所有方案均支持查询验证和直接更新表数据,执行UPDATE前建议先运行对应SELECT语句确认结果符合预期。

MySQL 实现

  • 日期拼接方案
-- 查询验证
SELECT CONCAT(DATE(UpdatedTime), ' 23:59:59') AS UpdatedTime FROM 你的表名;
-- 执行更新
UPDATE 你的表名 SET UpdatedTime = CONCAT(DATE(UpdatedTime), ' 23:59:59');
  • 时间偏移方案
-- 86399秒 = 23小时59分59秒,直接加在当天0点上
SELECT DATE(UpdatedTime) + INTERVAL 86399 SECOND AS UpdatedTime FROM 你的表名;

SQL Server 实现

-- 查询验证
SELECT DATEADD(SECOND, 86399, CAST(UpdatedTime AS DATE)) AS UpdatedTime FROM 你的表名;
-- 执行更新
UPDATE 你的表名 SET UpdatedTime = DATEADD(SECOND, 86399, CAST(UpdatedTime AS DATE));

Oracle 实现

-- 查询验证
SELECT TRUNC(UpdatedTime) + 86399/86400 AS UpdatedTime FROM 你的表名;
-- 执行更新
UPDATE 你的表名 SET UpdatedTime = TRUNC(UpdatedTime) + INTERVAL '23:59:59' HOUR TO SECOND;

说明:Oracle中1代表完整的1天,86399/86400就是一天中的第86399秒,对应23:59:59。

PostgreSQL 实现

-- 查询验证
SELECT DATE_TRUNC('day', UpdatedTime) + INTERVAL '23:59:59' AS UpdatedTime FROM 你的表名;
-- 执行更新
UPDATE 你的表名 SET UpdatedTime = DATE_TRUNC('day', UpdatedTime) + INTERVAL '86399 seconds';

注意事项

  • 如果字段需要保留毫秒精度,可将偏移量调整为86399.999秒,即可得到23:59:59.999的结果
  • 若存储的是带时区的时间类型,需先统一时区再做截断处理,避免出现日期偏移

内容的提问来源于stack exchange,提问作者Wymo Oo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 01:36:04