A small comment from a long long time ago (over 19 years) in the code:
Now we don't use abbreviations in server but we will do this in future.
What is the case, is the mysql.time_zone_transition_type is already populated with an Abbrevation
like "CET".
You'll need to join to the other timezone tables.
I rather crudely did the following:
SELECT UNIX_TIMESTAMP('2022-01-01 00:00:00'),
Transition_time,
Abbreviation,
Is_DST
FROM mysql.time_zone_name tz
JOIN mysql.time_zone_transition USING (Time_zone_id)
JOIN mysql.time_zone_transition_type USING (Time_zone_id,
Transition_type_id)
WHERE tz.Name='Europe/Amsterdam'
AND Transition_time > UNIX_TIMESTAMP('2022-01-01 00:00:00')
LIMIT 1;
Returning:
+---------------------------------------+-----------------+--------------+--------+
| UNIX_TIMESTAMP('2022-01-01 00:00:00') | Transition_time | Abbreviation | Is_DST |
+---------------------------------------+-----------------+--------------+--------+
| 1640995200 | 1648342800 | CEST | 1 |
+---------------------------------------+-----------------+--------------+--------+
However with better attention to the SQL and timezones a more correct answer can be obtained. There's an aspect that the same time can occur twice at the point that DST transition back so that needs to be accounted for.
Why isn't there a simpler mechanism? simply no-one has requested it. I encourage you to do.