MySQLを使用する場合は、TIME()
を使用できます。 時間または日時の値から時間部分を抽出する関数。
それが機能する方法は、引数として時刻/日時式を渡し、TIME()
時間の部分を返します。
構文
構文は次のようになります:
TIME(expr)
expr
は、時間部分を抽出する時刻/日時式です。
基本的な例
日時の値を使用した例を次に示します。
SELECT TIME('2021-01-03 11:15:45');
結果:
+-----------------------------+ | TIME('2021-01-03 11:15:45') | +-----------------------------+ | 11:15:45 | +-----------------------------+
フラクショナル秒
これは、日時の値に秒の小数部も含まれている例です。
SELECT TIME('2021-01-03 11:15:45.123456');
結果:
+------------------------------------+ | TIME('2021-01-03 11:15:45.123456') | +------------------------------------+ | 11:15:45.123456 | +------------------------------------+
秒の部分を省略する
これは、秒の部分が初期値から省略されている例です。
SELECT TIME('2021-01-03 11:15');
結果:
+--------------------------+ | TIME('2021-01-03 11:15') | +--------------------------+ | 11:15:00 | +--------------------------+
この場合、初期値から省略されていても、秒の部分が返されます。
「時間」値から時間を抽出する
前述のように、最初の引数は時間値自体にすることができます(つまり、日時値である必要はありません)。
SELECT TIME('11:15');
結果:
+---------------+ | TIME('11:15') | +---------------+ | 11:15:00 | +---------------+
ステートメントベースのレプリケーション–警告
MySQLのドキュメントには、TIME()
について次のように記載されています。 機能:
この関数は、ステートメントベースのレプリケーションには安全ではありません。
binlog_format
のときにこの関数を使用すると、警告がログに記録されますSTATEMENT
に設定されています 。