64-bit unix timestamp is not supported in MySQL functions (2005)
bugs.mysql.com
bugs.mysql.com
- TIME
- DATE
- YEAR
- TIMESTAMP
- DATETIMEYes, they actually have six decimal digits of precision. For tracking boxes on a warehouse conveyor belt.
I wish I could blame Oracle. We're using Watcom SQL on a Sybase DB.
Python appears to only have date, time, datetime, and timedelta, which doesn't seem excessive when you consider that there are times when you only want date or time by themselves.
Of course, I'd also have DurationTime as its own type, and do whatever magic is needed to ensure it remains uninfected by leap second shifts.
But it turns out there are situations where it does matter. If you ever run into a multi-timezone calendar problem, this approach breaks down.
A couple of examples of where it doesn't work:
* My alarms needs to wake me up at 8am. If I am at home, this should be 8am Irish time. If I relocate myself to the US, it should be 8am in whatever US timezone is currently in effect for my location.
* I want to schedule something to happen all day Irish time next Christmas. From 00:00 to 23:59. In the meantime, the EU actually abolishes DST: https://www.npr.org/2019/03/27/707179979/european-parliament... - The UTC conversion of 2020-12-25T00:00:00[Europe/Dublin] today gets converted to 2020-12-25T01:00:00[Europe/Dublin] when you try invert it in christmas 2020.
Both these situations are resolved with local dates/times. The first one should just be a local date, while the second one requires the combination of the local date and the timezone to happen at time of check, not at time of input.
Not quite what I had in mind, but I suppose you could serialize a ZonedTime<Z> to a string, like you can serialize an integer to a string.
> Both these situations are resolved with local dates/times. The first one should just be a local date, while the second one requires the combination of the local date and the timezone to happen at time of check, not at time of input.
Right. The first example requires a different type, LocalTime, and the second example requires types to change interpretation over time. Neither of these are problems with my scheme. They're problems with UI and system administration.
Non of the top Internet dogs - Facebook, Twitter, Uber run MariaDB
https://www.theregister.co.uk/2013/09/12/google_mariadb_mysq...
And Wikipedia: https://blog.wikimedia.org/2013/04/22/wikipedia-adopts-maria...
In Google BTW I'm not sure how much MySQL/MariaDB is left at all. They have been moving most of the stuff to Spanner.
Use uint64 as nanoseconds from epoch. Explicitly convert to/from UTC in your application code. Smear your leap seconds. This will last you until 2554, by which time I hope computers as we know are dead. Bonus: these make for decent strong-read-ordered internal UUIDs, given good retry logic.