Oldest recorded transaction
The other day I posted a tweet with this image which I thought was funny:

This is the oldest transaction database from 3100 BC - recording accounts of malt and barley groats. Considering this thing survived 5000 years (holy shit!) with zero downtime and has stronger durability guarantees than most databases today.
I call it rock solid durability.
This got me thinking, can I insert this date in today’s database? What is the oldest timestamp a database can support?
So I checked the top three databases: MySQL, Postgres, and SQLite:
MySQL | 1000 AD |
Postgres | 4713 BC |
SQLite | 4713 BC |
Too bad you cannot use MySQL for this. Postgres and SQLite support the Julian calendar and the lowest date is Jan 01, 4713 BC:
sales=# INSERT INTO orders VALUES ('4713-01-01 BC'::date);
INSERT 0 1
sales=# SELECT * FROM orders;
timestamp
---------------
4713-01-01 BC
(1 row)
sales=# INSERT INTO orders VALUES ('4714-01-01 BC'::date);
ERROR: date out of range: "4714-01-01 BC"
I wonder how people store dates older than this. Maybe if I’m a British Museum manager, and I want to keep theft inventory details. How do I do it? As an epoch? Store it as text? Use some custom system? How do I get it to support all the custom operations that a typical TIMESTAMP
supports?
Thanks to aku, happy_shady, Mr. Bhat, and General Bruh for reading an early draft of this post.
1. Source of the image: Sumer civilization
2. I found this from the talk 1000x: The Power of an Interface for Performance by
Joran Dirk Greef, CEO of TigerBeetle, timestamped @ 38:10.
3. The talk has other bangers too, like this or this.