📜  Ms Sql 设置我们的时区 - SQL (1)

📅  最后修改于: 2023-12-03 14:44:25.332000             🧑  作者: Mango

Ms Sql 设置时区

在 Ms SQL 中,可以使用以下代码为服务器或数据库设置时区:

-- 设置服务器时区
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'timezone', '<timezone>';
GO
RECONFIGURE;
GO

-- 设置数据库时区
ALTER DATABASE <database_name> SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
EXEC sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
ALTER DATABASE <database_name> SET TRUSTWORTHY ON;
GO
ALTER DATABASE <database_name> SET ANSI_NULLS ON;
GO
ALTER DATABASE <database_name> SET QUOTED_IDENTIFIER ON;
GO
CREATE ASSEMBLY [System.TimeZoneInfo] from 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\System.Core.dll' WITH PERMISSION_SET = UNSAFE;
GO
CREATE FUNCTION [dbo].[fn_GetCurrentTimeZone]()
RETURNS [nvarchar](250) WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [System.TimeZoneInfo].[System.TimeZoneInfo]::get_LocalTimeZone().ToString();
GO
ALTER DATABASE <database_name> SET MULTI_USER;
GO

在上面的代码中,<timezone> 应替换为您所需的时区,如东八区可设置为 'China Standard Time'。在设置完毕后,您可以通过以下代码来验证已经正确设置了时区:

SELECT SYSDATETIMEOFFSET() AT TIME ZONE '<timezone>' AS CurrentDateTime;

其中,<timezone> 应替换为您所设置的时区名称。

参考链接