How to Get Timezone of Session Context User in Sql Server

  • 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.

  • 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.

  • 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