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

如何用T-SQL将本地时区秒级时间戳转换为UTC时间戳

修改T-SQL语句返回UTC时区时间戳

要返回UTC时区的秒级时间戳,核心是先把本地时间转换为UTC时间,再计算其与UTC纪元时间(1970-01-01 00:00:00 UTC)的秒差,分两种场景处理:

场景1:LastUpdateDate是不带时区的datetime/datetime2类型

如果字段存储的是服务器本地时区的时间,需先为其绑定本地时区,再转换为UTC时间:

SELECT
    TableName,
    CAST(DATEDIFF(second, '1970-01-01T00:00:00Z', LastUpdateDate AT TIME ZONE 'China Standard Time' AT TIME ZONE 'UTC') AS BIGINT) TimestampInSeconds
FROM
    SynchronizationVersions r
WHERE
    LastUpdateDate IS NOT NULL
  • 把'China Standard Time'替换为你的本地时区名称(比如美国东部时区用'Eastern Standard Time'),可执行SELECT * FROM sys.time_zone_info查看SQL Server支持的所有时区。
  • '1970-01-01T00:00:00Z'是UTC纪元时间,后缀Z明确标记为UTC时区,避免歧义。

场景2:LastUpdateDate是带时区的datetimeoffset类型

如果字段本身包含时区信息,直接用SWITCHOFFSET转换为UTC即可:

SELECT
    TableName,
    CAST(DATEDIFF(second, '1970-01-01T00:00:00Z', SWITCHOFFSET(LastUpdateDate, '+00:00')) AS BIGINT) TimestampInSeconds
FROM
    SynchronizationVersions r
WHERE
    LastUpdateDate IS NOT NULL
  • SWITCHOFFSET(LastUpdateDate, '+00:00')会将带时区的时间转换为UTC时区对应的时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 10:45:00