You need to convert UTC DateTime
stored in your column to Date
based on users UTC time. This way you don't have to worry about any table that has to be populated with data. To get users date from your UTC column you will use something like this
SELECT CONVERT(DATE,(DATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), '01/29/2014 04:00')))
AS MyLocalDate
The select statement above figures out Local date based on the difference of UTC date and local Date. You will need to replace GETDATE()
with users DATETIME
that is passed in to your procedure and replace '01/29/2014 04:00'
with your column. This way when you select any date from your table it will be according to what that date was at users local time. Than you can calculate other fields accordingly.