SQL道場 日付時刻関数 TO_DAYS関数

SQL SQL
この記事は約2分で読めます。

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');
MySQL 紀元0年1月1日からの日数を取得するサンプル実行結果
タイトルとURLをコピーしました