MariaDBでは、TO_SECONDS() は、0年目から指定された日付または日時式までの秒数を返す組み込みの日付と時刻の関数です。
構文
構文は次のようになります:
TO_SECONDS(expr)
expr は日付または日時の値です。
例
次に例を示します:
SELECT TO_SECONDS('2020-10-30'); 結果:
+--------------------------+
| TO_SECONDS('2020-10-30') |
+--------------------------+
| 63771235200 |
+--------------------------+ ここに、他のいくつかの時間値があります:
SELECT
TO_SECONDS('0000-01-01'),
TO_SECONDS('1234-10-30'); 結果:
+--------------------------+--------------------------+
| TO_SECONDS('0000-01-01') | TO_SECONDS('1234-10-30') |
+--------------------------+--------------------------+
| 86400 | 38967436800 |
+--------------------------+--------------------------+ 日時の値
日時の値を使用する例を次に示します。
SELECT TO_SECONDS('2020-10-30 10:23:47'); 結果:
+-----------------------------------+
| TO_SECONDS('2020-10-30 10:23:47') |
+-----------------------------------+
| 63771272627 |
+-----------------------------------+ マイクロ秒
TO_SECONDS() マイクロ秒を無視します:
SELECT TO_SECONDS('2020-10-30 10:23:47.999999'); 結果:
+------------------------------------------+
| TO_SECONDS('2020-10-30 10:23:47.999999') |
+------------------------------------------+
| 63771272627 |
+------------------------------------------+ 数値日付
数値の日付がサポートされています:
SELECT TO_SECONDS(20201030); 結果:
+----------------------+ | TO_SECONDS(20201030) | +----------------------+ | 63771235200 | +----------------------+
現在の日付/時刻
NOW()を使用する例を次に示します。 現在の日時に基づいて秒数を返すには:
SELECT
NOW(),
TO_SECONDS(NOW()); 結果:
+---------------------+-------------------+ | NOW() | TO_SECONDS(NOW()) | +---------------------+-------------------+ | 2021-05-31 09:34:16 | 63789672856 | +---------------------+-------------------+
ただし、CURDATE()を使用する場合 、別の結果が得られます(CURDATE() 日付値を返しますが、NOW() 日時の値を返します。
SELECT
NOW(),
TO_SECONDS(NOW()),
CURDATE(),
TO_SECONDS(CURDATE()); 結果(垂直出力を使用):
NOW(): 2021-05-31 09:35:01
TO_SECONDS(NOW()): 63789672901
CURDATE(): 2021-05-31
TO_SECONDS(CURDATE()): 63789638400 無効な引数
無効な引数が渡されると、TO_SECONDS() nullを返します 警告付き:
SELECT TO_SECONDS('Homer'); 結果:
+---------------------+
| TO_SECONDS('Homer') |
+---------------------+
| NULL |
+---------------------+
1 row in set, 1 warning (0.000 sec) 警告を確認してください:
SHOW WARNINGS; 結果:
+---------+------+-------------------------------+ | Level | Code | Message | +---------+------+-------------------------------+ | Warning | 1292 | Incorrect time value: 'Homer' | +---------+------+-------------------------------+
引数がありません
TO_SECONDS()を呼び出す 引数の数が間違っているか、引数を渡さないと、エラーが発生します:
SELECT TO_SECONDS(); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_SECONDS'
そして別の例:
SELECT TO_SECONDS('2020-10-08', '10:09:10'); 結果:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'TO_SECONDS'