- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:mysqlのcase文で複数の条件を指定する)
MySQLでの複数条件指定と深夜残業時間計算方法
このQ&Aのポイント
- MySQL初心者のあなたが勤務時間や終了時間を条件にして深夜残業時間を計算する方法について教えます。
- データの例を挙げながら、MySQLのCASE文を使用して複数条件を指定する方法を説明します。
- また、勤務時間が8時間以上かつ終了時間が22時以降の場合、深夜残業時間を計算する方法も詳しく解説します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
AかつBならIFをつかってANDでつなげばいい気がしますが・・・ CASEにこだわるなら、WHENで条件外をしぼってELSEで実数を得ればよいかも ざっくり今回のだとこんな感じ? SELECT name,start_time,end_time,break_time ,CASE WHEN end_time<'22:00:00' THEN NULL WHEN TIMEDIFF(TIMEDIFF(end_time,start_time),break_time)<='08:00:00' THEN NULL ELSE TIMEDIFF(end_time,'22:00:00') END AS SHINYA FROM schedule
その他の回答 (1)
- nora1962
- ベストアンサー率60% (431/717)
回答No.1
case when (end_time - start_time - break_time)>=8 and end_time > '22:00:00' then (end_time='22:00:00') else 0 end ただし、一日の就業時間が8時間未満だからと言って深夜手当を出さないのは労基法違反です。
質問者
お礼
ご回答ありがとうございます。 確かにおっしゃるとおり、労基法違反ですね、考慮してませんでした。 8時間未満の文は別途考えて見ます。
お礼
ご回答ありがとうございます。 IF文でもいけるんですね、勉強になります。 こだわってはいませんが、まだまだ未熟なもので、今回CASE文しか思いつきませんでした。 IF文でも再度考えてみます。