首页 > 解决方案 > SQL Server:在数据库中使用不同时区保存日期时间的最佳实践

问题描述

我想将 DateTime 与 TimeZone 相关联。

我有一个订单,对于每个订单,跟踪时区都是不同的,并且希望将其转换为 UTC 时区以及本地时区。

因此,每个订单的原始时间总是不同的,并且希望使用不同的时区保存 DateTime。

处理这种情况的首选方法是什么?

标签: sqlsql-server

解决方案


我建议将您的日期时间保存为 UTC,如果您想将 UTC 时间转换为可以AT TIME ZONE在您的选择语句/视图或函数中使用的特定时区时间。

例子:

SELECT GetUtcDate() AT TIME ZONE 'central european standard time'

如果您想保存时区,我建议您将其保存在“用户”表中。这样用户可以修改它,您可以在查询或客户端中使用它来显示正确时区的时间。


推荐阅读