9

谁能帮我一个建议,我该如何实现以下内容:

我有一个安装了我的 sql server 的系统 A。

但我想在 sql server 中为我的数据库设置不同的时区,而不是系统 A 时区。

4

2 回答 2

11

SQL Server 没有时区的概念。它从 Windows 继承系统时间,并实时使用。例如,如果您在系统处于一个时区时安装 SQL Server,并且您将服务器更改为不同的时区,那么下一次调用GETDATE()它时将反映新时区,而不是当时正在使用的时区。 SQL Server 的安装时间。

在这种情况下,我认为您应该始终存储 UTC 数据(例如,使用GETUTCDATE()而不是GETDATE(). 稍后将其转换为您想要的(或任何!)时区要容易得多,例如 .NET 具有各种内置功能来处理此问题你。

于 2013-01-25T15:34:15.973 回答
1

我建议使用它(本例中为 EST)

SYSDATETIMEOFFSET() AT TIME ZONE 'Eastern Standard Time' 

这将返回任何选定时区的精确时间日期和偏移量。这种方法将不依赖于服务器时区。

于 2019-02-06T12:58:31.067 回答