MySQL は、proleptic Gregorian calendar として知られる暦を使用しています。
ユリウス暦からグレゴリオ暦に改めたすべての国では、その変移の際に少なくとも 10 日の日数を減らさなければなりませんでした。この仕組みを理解するには、初めてユリウス暦からグレゴリオ暦への変更が行われた1582 年の 10 月を考慮に入れてください :
月曜日 | 火曜日 | 水曜日 | 木曜日 | 金曜日 | 土曜日 | 日曜日 |
1 | 2 | 3 | 4 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
10 月 4 日から 10 月 15 日の間には日付がありません。この不連続性を カットオーバ と呼びます。カットオーバの前がユリウス暦で、カットオーバに続く日付はすべてグレゴリオ暦です。カットオーバの途中の日付は存在しません。
まだ実際には使用されていなかった間のカレンダーは
proleptic
と呼ばれています。従って、最初から常にグレゴリオ暦が使用されており、カットオーバが起こることもなかったと仮定した暦が
proleptic Gregorian calendar
ということになります。これが MySQL
の使用する暦であり、標準 SQL
の必須となっています。このため、MySQL
DATE
または DATETIME
値として格納されたカットオーバ前の日付は、その違いを補正する調整が必要です。カットオーバが起こった時期が国によって異なるのも重要な点で、その時期が後であるほど、失われる日数は多いことになります。例えば、イギリスでは
1752 年にカットオーバが起こり、9 月 2
日の水曜日の翌日が、9 月 14
日の木曜日でした。ロシアは 1918
年までユリウス暦を使用し、変更の際に 13
日を失いました。世に言う 「十月革命」
は、グレゴリオ暦では 11
月に起こったものです。