SQL道場 日付時刻関数 TO_DAYS関数
SQLで紀元0年1月1日からの日数を取得するTO_DAYS関数について記載しています。
対応データベース:MySQL
TO_DAYS関数の文法
SELECT TO_DAYS(日付) FROM テーブル
SELECT TO_DAYS (date) FROM table
引数 Arguments | 日付 Date | 文字列型 String type |
返値 return value | 数値型 紀元0年1月1日からの日数が戻ります。 Number Returns the number of days since January 1, 0 A.D. |
TO_DAYS関数は指定された日付の紀元0年1月1日からの日数を返します。紀元0年1月1日からの日数を日付にする場合はFROM_DAYS関数を使います。
The TO_DAYS function returns the number of days since January 1, 0 A.D. for the specified date. Use the FROM_DAYS function to date days from January 1, 0 A.D.
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');