If you are doing this calculation live - i.e., on the current data, you can convert from GMT to UTC like shown below:
DATEADD(hh, DATEDIFF(hh, getutcdate(), getdate() ), YourDateColumn)If you need to convert historical dates, i.e, the "yourDateColumn" values are not today's dates, then you will need to create a reference table which has start and end dates of daylight savings time for each year, and then join to that table and subtract/add one hour based on the current date.
If you google for it, you might see some examples where they try to calculate the start and end of daylight savings time. I would stay away from that. The start and end of daylight saving time was changed in 2007, and Congress may change it again when they are not otherwise engaged, so best to keep the data in reference table and use that.
I had the reference table with all the US and European daylight savings date ranges the past 20 years or so and the code to convert GMT correctly to local time, all at my old work place. Unfortunately, Friday was my last day there and I didn't take any code with me when I left.