(based on a conversation with a colleague, and a bit of Twitter)
A Conundrum
A developer colleague paged me with this:
mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 2 YEAR) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 2 YEAR) as delta\G delta: 420
It is obviously wrong, and weirdly so. It only works for “2 year”, not with other values:
mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 1-11 year_month) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 1-11 year_month) as delta\G delta: 3600 mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 1-12 year_month) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 1-12 year_month) as delta\G delta: 3600 mysql> select UNIX_TIMESTAMP("2021-03-26 03:07:00" + INTERVAL 1-13 year_month) - UNIX_TIMESTAMP("2021-03-26 02:07:00" + INTERVAL 1-13 …[Read more]