How to print GETDATE() in SQL Server with milliseconds in time?
I want to print GETDATE() in SQL Server 2008, I need the time with milliseconds (this is for debugging purpose - to find sp's execution time )
I find this Difference
-
SELECT GETDATE()
returns 2011-03-15 18:43:44.100 -
print GETDATE()
returns Mar 15 2011 6:44PM
I think SQL Server automatically typecast in print functionality.
I need to print the date like this 2011-03-15 18:43:44.100
Thanks for your help.
Solution 1:
First, you should probably use SYSDATETIME()
if you're looking for more precision.
To format your data with milliseconds, try CONVERT(varchar, SYSDATETIME(), 121)
.
For other formats, check out the MSDN page on CAST
and CONVERT
.
Solution 2:
SELECT CONVERT( VARCHAR(24), GETDATE(), 113)
UPDATE
PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))
Solution 3:
If your SQL Server version supports the function FORMAT you could do it like this:
select format(getdate(), 'yyyy-MM-dd HH:mm:ss.fff')
Solution 4:
these 2 are the same:
Print CAST(GETDATE() as Datetime2 (3) )
PRINT (CONVERT( VARCHAR(24), GETDATE(), 121))