Pelo que consegui encontrar na web, e neste site também, tentei todos os seguintes procedimentos (1 a 5) para recuperar a última data em que o SQL Server foi iniciado:
SELECT 0 as Id, SYSDATETIME() as DT
union
SELECT 1, sqlserver_start_time FROM sys.dm_os_sys_info
union
SELECT 2, login_time FROM sys.dm_exec_sessions WHERE session_id = 1
union
SELECT 3, start_time from sys.traces where is_default = 1
union
SELECT 4, crdate FROM sysdatabases WHERE name='tempdb'
union
SELECT 5, create_date FROM sys.databases WHERE name = 'tempdb'
O resultado é:
0 2025-04-17 23:38:26.9364166
1 2025-04-13 19:09:42.2000000
2 2025-04-13 19:09:44.3166667
3 2025-04-13 19:09:46.5600000
4 2025-04-13 19:09:51.0900000
5 2025-04-13 19:09:51.0900000
O problema: iniciei a máquina (e o SQL Server com ela) há apenas uma hora. Eu esperava algo como 2025-04-17 22:38... e não 2025-04-13 19:09.
Este servidor SQL está instalado em uma caixa VMware.
Em outro SQL Server, mesma edição e versão, tenho resultados corretos:
Id DT
0 2025-04-18 14:34:49.3442637
1 2025-04-18 14:34:03.4333333
2 2025-04-18 14:34:05.1233333
3 2025-04-18 14:34:09.7400000
4 2025-04-18 14:34:14.6100000
5 2025-04-18 14:34:14.6100000
Não consigo entender por que tenho resultados errados na máquina virtual. Eu inicio e desligo a máquina host e a VM convidada sempre que trabalho.
Estou esquecendo de alguma coisa aqui?
- SQL Server Dev Edition 2019
Comentários no Community Wiki.
Ao iniciá-lo, ocorreu isso após um desligamento anterior ou ele pode ter simplesmente retornado da hibernação? - Martin Smith
Parece mais que o VirtualBox não está desligando o convidado, mas apenas salvando-o. Isso não é um problema do SQL Server de forma alguma, mas sim uma configuração da camada de virtualização (como salvar em vez de desligar) ou uma falha semelhante da camada de virtualização em definir a hora atual corretamente na inicialização do sistema operacional. Não é possível que o SQL mostre a data errada para a inicialização ou execute magicamente em segundo plano enquanto o sistema operacional convidado está desligado. - Sean Gallardy
Sugeri verificar a mensagem de inicialização do log de erros para verificar se o serviço foi realmente (re)iniciado no horário esperado, não como uma alternativa para suas consultas DMV. O log de erros deve confirmar que o serviço do SQL Server não foi reiniciado como você presumiu. - Dan Guzman