April 22, 2022 at 10:27 am
I have to write a function in which i have to return the time according to logged in User Time zone. In oracle it is done by SYS_CONTEXT and then i return time according to that. BUT while working with sql server I could found any solution. I have tried CURRENT_TIMEZONE() and DATETIMEOFFSET but still not able to find out the expected result.
April 22, 2022 at 2:22 pm
SQL Server has no idea where the logged-in user is - TSQL is execute on the server, not the client.
If you want this information for SQL Server, you will have to pass it/set it in the query. SQL Server has CONTEXT_INFO() and, starting w/ 2016, the better SESSION_CONTEXT().
If you have an application, it can use the available location information to somewhat accurately, depending on the device/application, figure out where the user is. Otherwise, you probably need a user table for your users that includes their timezone.
April 22, 2022 at 7:09 pm
The application needs to pass the date/time as a datetimeoffset - but that won't provide you with the time zone. All that gives you is the offset for that client - and each offset can have multiple time zones defined (and some that will be the same at different times depending on when they switch to/from daylight savings time).
You can look in the table sys.timezone to see the list of available time zones and their current offset.
Jeffrey Williams
“We are all faced with a series of great opportunities brilliantly disguised as impossible situations.”
― Charles R. Swindoll
How to post questions to get better answers faster
Managing Transaction Logs
Viewing 3 posts - 1 through 3 (of 3 total)
You must be logged in to reply to this topic. Login to reply
This website stores cookies on your computer.
These cookies are used to improve your website experience and provide more personalized services to you, both on this website and through other media.
To find out more about the cookies we use, see our Privacy Policy