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

MySQL:依据另一表中的符号对时间戳加减指定分钟数

解决时间戳按存储的分钟偏移量加减的问题

正确查询语句

SELECT
    start_time AS original_timestamp,
    DATEADD(minute, CONVERT(INT, (SELECT offset_in_minutes FROM offset_table)), start_time) AS updated_timestamp
FROM
    students_table;

问题原因

你之前的写法里,直接把nvarchar类型的偏移值和时间戳相加,SQL会自动将字符串转成整数,然后默认以秒为单位累加时间,导致+300实际只加了300秒,和预期的300分钟不符。

方案说明

  • DATEADD(minute, ...)明确指定按分钟来调整时间,彻底避免单位混淆
  • CONVERT(INT, offset_in_minutes)把存储的带符号字符串转成整数,正负号会被完整保留,无需手动编写加减逻辑
  • 直接复用表中存储的偏移值,完全匹配你要求的使用规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 13:30:41