谁能帮我一个建议,我该如何实现以下内容:
我有一个安装了我的 sql server 的系统 A。
但我想在 sql server 中为我的数据库设置不同的时区,而不是系统 A 时区。
谁能帮我一个建议,我该如何实现以下内容:
我有一个安装了我的 sql server 的系统 A。
但我想在 sql server 中为我的数据库设置不同的时区,而不是系统 A 时区。
SQL Server 没有时区的概念。它从 Windows 继承系统时间,并实时使用。例如,如果您在系统处于一个时区时安装 SQL Server,并且您将服务器更改为不同的时区,那么下一次调用GETDATE()
它时将反映新时区,而不是当时正在使用的时区。 SQL Server 的安装时间。
在这种情况下,我认为您应该始终存储 UTC 数据(例如,使用GETUTCDATE()
而不是GETDATE()
. 稍后将其转换为您想要的(或任何!)时区要容易得多,例如 .NET 具有各种内置功能来处理此问题你。
我建议使用它(本例中为 EST)
SYSDATETIMEOFFSET() AT TIME ZONE 'Eastern Standard Time'
这将返回任何选定时区的精确时间日期和偏移量。这种方法将不依赖于服务器时区。