使用 TSQL 进行时区转换
我收到每小时传入的数据(跨越 5 年),并带有以 CST 或 EST 记录的时间戳。我想以 UTC 时间将其存储在我的数据库中。
有没有办法使用 TSQL 将 CST/CDT/CPT 或 EST/EDT/EPT 转换为 UTC?
I have incoming hourly data (spanning 5 years) with timestamps recorded in CST or EST. I want to store this in my database in UTC time.
Is there a way for me to convert from CST/CDT/CPT or EST/EDT/EPT to UTC using TSQL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我建议您将它们存储为 DATETIMEOFFSET 以保留时区信息。
如果您需要显示为 UTC 日期,那么您可以使用 SWITCHOFFSET
mI would recommend you store these as DATETIMEOFFSET to preserve the timezone information.
If you need to display then as UTC Dates then you can use SWITCHOFFSET
您可以确定行中的日期时间是 EST 还是 EDT:
然后应用
DATEADD()
Mb 我的源代码更好地解释了我的意思:
You can determine is datetime in row in EST or EDT:
Then apply
DATEADD()
Mb my source code better explains what I mean: