There are number of occasions where we need to get to know the SQL Server
service start date time and also from what time the SQL Services are up and
running generally termed as Uptime. There are many ways to do it like check for
temp DB Creation time, using DMF sys.dm_io_virtual_file_stats etc. Below written
is small T-SQL script but very useful which provides you this information. Hope
this is useful. Comments and suggestions are always welcome. .
USE MASTER
GO
SET NOCOUNT ON
GO
SELECT 'SQL server started at ' +
CAST((CONVERT(DATETIME, sqlserver_start_time, 126)) AS VARCHAR(20))
+' and is up and running from '+
CAST((DATEDIFF(MINUTE,sqlserver_start_time,GETDATE()))/60 AS VARCHAR(5))
+ ' hours and ' +
RIGHT('0' + CAST(((DATEDIFF(MINUTE,sqlserver_start_time,GETDATE()))%60) AS VARCHAR(2)),2)
+ ' minutes' AS [Start_Time_Up_Time] FROM sys.dm_os_sys_info
GO
SET NOCOUNT OFF
GO
USE MASTER
GO
SET NOCOUNT ON
GO
SELECT 'SQL server started at ' +
CAST((CONVERT(DATETIME, sqlserver_start_time, 126)) AS VARCHAR(20))
+' and is up and running from '+
CAST((DATEDIFF(MINUTE,sqlserver_start_time,GETDATE()))/60 AS VARCHAR(5))
+ ' hours and ' +
RIGHT('0' + CAST(((DATEDIFF(MINUTE,sqlserver_start_time,GETDATE()))%60) AS VARCHAR(2)),2)
+ ' minutes' AS [Start_Time_Up_Time] FROM sys.dm_os_sys_info
GO
SET NOCOUNT OFF
GO