This is more of a design question.
I have a MySQL DB containing stock exchanges data. There are several stock exchanges across the world, all in different time zones. They all publish data that I want to load in my DB in their local timezone (along with time changes during daylight savings). The data I am interested in is usually in the format of:
DATETIME | STOCK | PRICE
______________________________________
2017-01-01 13:00:00 | AAAAA | 34.56
2017-01-01 13:00:00 | BBBBB | 14.82
I will have users that are all in the EST timezone and my server is currently in UTC. I need the users to access this data in the market's local timezone quite easily. At the moment, they use Excel's MySQL connectivity to load data into their Excel sheets to use it. I might eventually need to compare timestamps between different markets. Some markets observe daylight savings, some don't.
The options I see are:
1. Store everything in UTC
2. Store everything in the local timezone
3. Store everything in the local timezone + keep another column to specify which timezone (i.e. EST, EDT, PST, PDT)
Option 1 has the disadvantage that users would need to convert the UTC time to their local timezone by themselves before using it. The advantages are that a single field handles daylight savings and that we can easily compare the timestamps between markets.
Option 2 has the disadvantage of not keeping the time changes information (daylight savings) and would effectively 'lose' one hour every year. Not really a viable option in my case.
Option 3 has a slightly more complex DB schema and wouldn't make it easy to compare timestamps in different markets, but the users wouldn't have to worry about converting UTC time to the market's local time while still keeping track of daylight savings.
What is the 'standard' way of handling these situations?