我有一个表,其中那些列之一显示日期时间值:
--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实例的计算机的操作系统中得出的。。
但是我检查了操作系统的时区,似乎还可以:
SQLServer实例和Windows Server安装在VM中。
如何在SQL Server中将UTC日期配置为与操作系统相同,避免如上所述的+3个小时?
谢谢。
答案 0 :(得分:0)
如何在SQL Server中将UTC日期配置为与操作系统相同,避免如上所述的+3个小时?
如问题注释中所述,UTC日期和时间不是可以更改的日期和时间。通过更改系统时区,只能更改本地日期和时间。如果希望它们的值相同,则将系统时区更改为“(UTC)协调世界时”。
唯一的解决方法是手动设置时钟而不是同步时钟,并设置实际时间。不建议这样做,因为许多事情需要准确的时间才能正常工作。