如何在 Azure 中更改 SQL 服务器管理实例的时区?

How to change timezone of SQL server manage instance in azure?

我在创建时使用 UTC 时区在 Azure 中创建了管理实例。现在我想将时区更改为 GMT。那么这是否可以更改管理实例 SQL 服务器的时区?

date/time 派生自 SQL 服务器实例所在计算机的操作系统 运行。

我搜索了很多,根据我的经验,一旦创建了 SQL 服务器实例,我们就无法更改时区。

我们唯一能做的就是将 UTC 时区转换为 GMT。很多人在 Stack overflow 上都有 post 类似的问题。如:

  1. Date time conversion from timezone to timezone in sql server
  2. SQL Server Timezone Change

Azure 给出的内置函数AT TIME ZONE (Transact-SQL) 适用于SQL Server 2016 或更高版本。 AT TIME ZONE 实现依赖于 Windows 机制来跨时区转换日期时间值。

inputdate AT TIME ZONE timezone

例如,在不同时区之间转换值:

USE AdventureWorks2016;  
GO  

SELECT SalesOrderID, OrderDate,   
    OrderDate AT TIME ZONE 'Pacific Standard Time' AS OrderDate_TimeZonePST,  
    OrderDate AT TIME ZONE 'Central European Standard Time' AS OrderDate_TimeZoneCET  
FROM Sales.SalesOrderHeader;

我没有 Azure SQL MI,所以我可以为您测试一下。

希望对您有所帮助。

托管实例创建后便无法更改。您需要使用正确的时间戳重新部署托管实例并使用 cross instance PITR 移动数据库。