MySQLでは、TO_SECONDS()
関数は、0年からの秒数を返します。
この関数をTIME_TO_SECONDS()
と混同しないでください。 関数。引数として指定された特定の時間値の秒数を返します。
構文
構文は次のようになります:
TO_SECONDS(expr)
expr
は日付または日時の値です(0年と比較されます)。
例1-「日付」引数の使用
日付引数を使用した例を次に示します。
SELECT TO_SECONDS('2021-09-21');
結果:
+--------------------------+ | TO_SECONDS('2021-09-21') | +--------------------------+ | 63799401600 | +--------------------------+
例2–「datetime」引数の使用
日時引数を使用した例を次に示します。
SELECT TO_SECONDS('2021-09-21 10:30:25');
結果:
+-----------------------------------+ | TO_SECONDS('2021-09-21 10:30:25') | +-----------------------------------+ | 63799439425 | +-----------------------------------+
例3–現在の日付を使用する
この例では、CURDATE()
を渡します 現在の日付を使用するための引数として機能します。
SELECT TO_SECONDS(CURDATE()) AS 'Result';
結果:
+-------------+ | Result | +-------------+ | 63697968000 | +-------------+
例4–現在の日付と時刻を使用する
この例では、NOW()
を渡します 現在の日付と時刻を使用するための引数として機能します。
SELECT TO_SECONDS(NOW()) AS 'Result';
結果:
+-------------+ | Result | +-------------+ | 63698002698 | +-------------+
2桁の年
MySQLには、2桁の年の日付を処理するための特別なルールがあります。世紀が不明であるため、2桁の年はあいまいです。基本的に、次のルールが適用されます。
-
00-69
の範囲の年の値2000-2069
に変換されます 。 -
70-99
の範囲の年の値1970-1999
に変換されます 。
完全な説明については、MySQLが2桁の年を処理する方法に関するMySQLのドキュメントを参照してください。
デモンストレーションの例を次に示します。
SELECT TO_SECONDS('69-10-07') AS '69 (2069)', TO_SECONDS('70-10-07') AS '70 (1970)';
結果:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
省略された日付
省略された日付を使用することもできます。これは、以前の日付の値を省略形で使用した例です。
SELECT TO_SECONDS('691007') AS '69 (2069)', TO_SECONDS('701007') AS '70 (1970)';
結果:
+-------------+-------------+ | 69 (2069) | 70 (1970) | +-------------+-------------+ | 65315548800 | 62191324800 | +-------------+-------------+
以前の日付
MySQLのドキュメントでは、TO_SECONDS()
機能:
グレゴリオ暦(1582)の出現より前の値での使用は意図されていません。これは、カレンダーが変更されたときに失われた日数が考慮されていないためです。 1582年より前の日付(および他のロケールではそれ以降の年)の場合、この関数の結果は信頼できません。