首页 > 解决方案 > 获取特定时区的特定日期

问题描述

我正在尝试从格林威治标准时间的数据库中获取给定日期。所以我需要不断地解释差异。

DECLARE @date datetime
DECLARE @tempdate datetime = '3/1/2019'
SET @date =  @tempdate AT TIME ZONE 'UTC' AT TIME ZONE 'Central Standard 
Time'
SELECT @date

上面的代码在 3 月 1 日之前几个小时生成一个日期(因为我在美国)。是否有一种通用的方法可以始终在任何所需日期获取中央时间?

标签: sqlsql-server

解决方案


如果您尝试将 UTC 时间转换为美国中部时间,那么收到早于 UTC 时间的中部时间确实是正常的。太阳首先在格林威治升起,然后在芝加哥升起,所以三月首先在 UTC 区域开始,比芝加哥早几个小时。其他月份也一样!:)


推荐阅读