If you must go directly through the database, it seems like you need to get the timezone string from the UserProfile table like:
SELECT TOP 1 up.PropertyValue
FROM UserProfile up JOIN ProfilePropertyDefinition pdef ON up.PropertyDefinitionID = pdef.PropertyDefinitionID
WHERE up.UserID = 1 AND pdef.PortalID = 0
AND pdef.PropertyName = 'PreferredTimeZone'
This will give you something like 'Pacific Standard Time' which you will have to map (or create a lookup table) to get the GMT offset of that timezone string. Then subtract the hours from the GETUTCDATE().