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

SQL Server中如何将UTC日期格式转换为IST格式?解决转换结果异常

解决UTC转IST(印度标准时间)的日期格式问题

嘿,我来帮你搞定这个日期转换的小问题!你的代码里有两个关键问题需要调整:

  • 首先,IST是UTC+5:30,也就是比UTC时间早5个半小时,所以你应该给UTC时间加上5.5小时,而不是减去——你现在的计算方向完全搞反啦!
  • 其次,要得到你想要的yyyy-mm-dd hh:mi:ss格式,需要用CONVERT函数指定输出样式,不然SQL会默认用英文日期格式输出。

这里给你一个修正后的完整代码:

-- 直接解析带时区的UTC时间字符串
DECLARE @utcDatetime DATETIME = '2020-04-30T18:11:39+00:00'

-- 用DATEADD添加330分钟(5*60+30)得到IST时间,这样计算更精准
DECLARE @istDatetime DATETIME = DATEADD(MINUTE, 330, @utcDatetime)

-- 使用CONVERT指定样式120,输出你需要的格式
SELECT CONVERT(VARCHAR(19), @istDatetime, 120) AS IST_Formatted

运行这段代码后,你就能得到想要的输出:2020-04-30 23:41:00。

另外补充一点:如果你的SQL Server版本是2012及以上,也可以用FORMAT函数来格式化,写法更直观:

SELECT FORMAT(@istDatetime, 'yyyy-MM-dd HH:mm:ss') AS IST_Formatted

效果和CONVERT是一样的,看你个人习惯选择就行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:38:27