SQLの窓

2014年10月11日


MySQL で出退勤の列を datetime 型で持った場合、列を使用して DATEDIFF と TIMEDIFF で直接計算

以下のような単純な表を考えた場合、当日の勤務時間の計算としては、TIMEDIFF 関数を使います
create table `出退勤トラン` (
	`社員コード` varchar(4)
	,`日時` date
	,`出勤` datetime
	,`退勤` datetime
	,primary key(`社員コード`)
)

TIMEDIFF と DATEDIFF は、それぞれ時間と日付に対して演算を行います。結果として TIMEDIFF は、時刻表示で経過時間をあらわすため、23:59:59 より大きい経過を実行しようとするとエラーになります。
DATEDIFF は経過日数を整数で表すのですが、日付部分が変わると、経過時間が 1 秒でも 1 日を返します
select 
	社員コード,
	退勤,
	出勤,
	TIMEDIFF(退勤,出勤) as 経過時間,
	DATEDIFF(退勤,出勤) as 経過日数
 from 出退勤トラン

▼ SQL 実行の結果
社員コード 退勤 出勤 経過時間 経過日数
0001 2014/10/12 16:27:44 2014/10/11 16:27:45 2014/10/11 23:59:59 1
0002 2014/10/11 16:27:46 2014/10/11 16:27:45 2014/10/11 0:00:01 0
0003 2014/10/12 0:00:01 2014/10/11 16:27:45 2014/10/11 7:32:16 1
0004 2014/10/11 23:59:59 2014/10/11 16:27:45 2014/10/11 7:32:14 0
0005 2014/10/12 2014/10/11 23:59:59 2014/10/11 0:00:01 1
※ 経過時間の日付部分は、SQLを実行した日の日付です


タグ:MySQL
【MySQLの最新記事】
posted by lightbox at 2014-10-11 17:26 | MySQL | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり