SQLで紀元0年1月1日からの日数を取得するTO_DAYS関数について記載しています。
対応データベース:MySQL
TO_DAYS関数の文法
SELECT TO_DAYS(日付) FROM テーブル
引数 | 日付 | 文字列型 |
返値 | 数値型 紀元0年1月1日からの日数が戻ります。 |
TO_DAYS関数は指定された日付の紀元0年1月1日からの日数を返します。紀元0年1月1日からの日数を日付にする場合はFROM_DAYS関数を使います。
TO_DAYS() は、カレンダーが変更された際に失われた日が考慮されないため、グレゴリオ暦 (1582) の出現よりも前の値とともに使用するために設計されていません。 日付が 1582 よりも前の場合は (ほかのロケールでは、さらにあとの年になる可能性があります)、この関数の結果は信頼できません。 詳細は、セクション12.9「MySQL で使用されるカレンダー」,を参照してください。
MySQL では セクション11.2「日時データ型」 のルールを使用して、日付の 2 桁の年の値が 4 桁の形式に変換されることを忘れないでください。 たとえば、’2008-10-07′ と ’08-10-07′ は同じ日付と認識されます。
MySQL では、ゼロの日付は ‘0000-00-00′ として定義されます。ただし、このデータ自体は無効とみなされます。 つまり、’0000-00-00’ および ‘0000-01-01’ の場合、TO_DAYS() は次に示す値を返します。
https://dev.mysql.com/doc/refman/8.0/ja/date-and-time-functions.html#function_to-days
実行例
MySQLの実行例
/* MySQL 紀元0年1月1日からの日数を取得するサンプル */
SELECT TO_DAYS('2020-01-01');
