MySQL で datetime 型に入っているデータを使って、24時間未満の経過時間を取得するのには、TIMEDIFF 関数を使います。 MySQL で出退勤の列を datetime 型で持った場合、列を使用して DATEDIFF と TIMEDIFF で直接計算 しかし、プログラマから実際に渡すのは文字列である事が殆どなので、TIMEDIFF を使う前提条件として、CAST, STR_TO_DATE, GET_FORMAT, DATE_FORMAT 関数が必要になります。 MySQL 5.1 リファレンスマニュアル :: 11.5 日付時刻関数 CAST と STR_TO_DATE は、'(シングルクォート)で表現された日付データを実際の日付データとして MySQL に認識させる為に使用します。STR_TO_DATE 関数を使用する場合は、文字列のフォーマットに合わせてフォーマット文字列を用意する必要があります。また、その文字列をある程度自動で取得する方法が、GET_FORMAT 関数です( 使える場面は限定的ですが )。そして、TIMEDIFF の結果として意味のある部分は時刻部分なので、DATE_FORMAT 関数で時刻部分のみを取り出すようにしいます。
select DATE_FORMAT( TIMEDIFF( STR_TO_DATE('2014/10/12 16:27:43', '%Y/%m/%d %H:%i:%s'), STR_TO_DATE('2014/10/11 16:27:44', '%Y/%m/%d %H:%i:%s') ), '%H:%i:%s' ) as 経過時間1, GET_FORMAT(DATETIME,'JIS') as 標準フォーマット, DATE_FORMAT( TIMEDIFF( STR_TO_DATE('2014-10-12 16:27:43', GET_FORMAT(DATETIME,'JIS')), STR_TO_DATE('2014-10-11 16:27:44', GET_FORMAT(DATETIME,'JIS')) ), '%H:%i:%s' ) as 経過時間2, DATE_FORMAT( TIMEDIFF( CAST('2014-10-12 16:27:43' as datetime), CAST('2014-10-11 16:27:44' as datetime) ), '%H:%i:%s' ) as 経過時間3
上の SQL の実行結果は以下のようになります
タグ:MySQL
|
【MySQLの最新記事】
- MySQL に PIPES_AS_CONCAT を設定して、CSV を出力する SQL
- MySQL : DB のデータを簡単に沢山作る方法は inner join
- MySQL で、Group by して合算された行内で最新データの明細を再び取り出す SQL
- MySQL のコマンドラインの操作
- Windows 環境の MySQL から日本語名のテーブルを コマンドプロンプトでエクスポート(mysqldump.exe)する
- MySQLの日本語オンラインマニュアル、5.6 とその中のいくつかの重要なリンク
- MySQL のコマンドプロンプトからの処理用バッチファイル
- MySQL で、主キーの作り変えのプロセス / serial では、自動的に インデックスが作成されます
- MySQL 5.6 (Generally Available (GA) Releases) インストール
- MySQL : 引数の無い LAST_INSERT_ID() と 引数のある LAST_INSERT_ID( n ) の使用方法
- MySQL における AUTO_INCREMENT 列の設定および詳細
- MySQL で出退勤の列を datetime 型で持った場合、列を使用して DATEDIFF と TIMEDIFF で直接計算
- MySQL を UTF-8 環境で作成して、mysqldump.exe でバックアップするバッチファイルのサンプル
- MySQL 5.6 : テストデータ自動作成スクリプト
- PHP + MySQL : Windows の COM を使った ODBC 経由での接続とデータの取得(SELECT)
- VBScript + MySQL : ADO( ODBC ) による接続とデータの取得(SELECT)
- PHP + MySQL : Windows における ODBC 経由での接続とデータの取得(SELECT)
- PHP + MySQL : PDO_MySQL での接続とデータの取得(SELECT)
- PHP + MySQL : MySQL 改良版拡張モジュール mysqli クラスでの接続とデータの取得(SELECT)
- PHP + MySQL : PHP 5.5.0 で非推奨の MySQL 関数での接続とデータの取得(SELECT)