Note the follow commands running in a on prem environment will return to you the date and time of your server region configuration, except for GetUTCdate, this one will return UTC per definition:SELECT SYSDATETIME() ,SYSDATETIMEOFFSET() ,SYSUTCDATETIME() ,CURRENT_TIMESTAMP ,GETDATE() ,GETUTCDATE();
As you can see here the doc confirms: "Returns the current database system timestamp as a datetime value without the database time zone offset. This value is derived from the operating system of the computer on which the instance of SQL Server is running."
This is my on-prem instance example. I am based in UTC+1, now is 09:15AM. So the results make sense as Fig. 1 shows:
Fig 1 OnPrem
If you are running against a PaaS environment such as Azure SQL DW. The same will show UTC, as Fig 2 shows:
Fig 2 ADW
So if you want to convert to your timezone you can use the following.
For example for IST timezone:
SELECT CONVERT(datetime, '03/14/2016 01:01:00')
AT TIME ZONE 'India Standard Time'
SELECT *
FROM sys.time_zone_info
where name like '%india%'
Other very good links about this:
https://thomaslarock.com/2016/03/sql-server-2016-time/
Liliam C Leme
Engineer UK
Updated Jul 06, 2020
Version 3.0Liliam_C_Leme
Microsoft
Joined May 04, 2020
Azure Synapse Analytics Blog
Follow this blog board to get notified when there's new activity