如何将SQLServer UTCDATE配置为与Windows Server相同?

时间:2019-06-18 21:50:57

标签: sql-server sql-server-2008-r2 windows-server-2008-r2 utc

我有一个表,其中那些列之一显示日期时间值:

--result when querying the database directly:
id    datetime
1     2019-05-29 05:12:06.000
2     2019-01-29 10:48:34.000

但是通过网络浏览器,这些值是 +3小时

--values when displayed in a Primefaces datatable from the Web Server:
id    datetime
1     2019-05-29 08:12:06.000
2     2019-01-29 13:48:34.000

我已经研究并意识到,这+3个小时是在SQL Server中发生的时间:

SELECT GETDATE()   : 2019-06-19 11:48:53.483
SELECT GETUTCDATE(): 2019-06-19 14:48:53.483 

关于GETUTCDATE,如here所述:此值是从运行SQL Server实例的计算机的操作系统中得出的。

但是我检查了操作系统的时区,似乎还可以:

image showing the SQLServer GETDATE, GETUTCDATE and Windows Server time zone

SQLServer实例和Windows Server安装在VM中。

如何在SQL Server中将UTC日期配置为与操作系统相同,避免如上所述的+3个小时?

谢谢。

1 个答案:

答案 0 :(得分:0)

  

如何在SQL Server中将UTC日期配置为与操作系统相同,避免如上所述的+3个小时?

如问题注释中所述,UTC日期和时间不是可以更改的日期和时间。通过更改系统时区,只能更改本地日期和时间。如果希望它们的值相同,则将系统时区更改为“(UTC)协调世界时”。

唯一的解决方法是手动设置时钟而不是同步时钟,并设置实际时间。不建议这样做,因为许多事情需要准确的时间才能正常工作。