• ベストアンサー

データベースから勤務時間の合計を取得するSQL

データベースの勤務時間フィールドに、文字列型で0630、0730、0400といった文字が入っています。 最初の二桁が時間で、後ろ二桁が分を表しています。 この合計時間を出したいのですが、そのSQL文が分りません。 数値型にキャストし、そのままsumすると 1800と表示させたいところが1760となってしまいますよね… どなたか具体的な方法を教えてください…

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

こんな感じですかね。 SQL Server 2008からはTIME型というのがありますが、それまではdatetime,smalldatetimeしかないのでその型で演算するのはかえって面倒でしょう。 単純に時間と分を分けて計算し、60で割って商と剰余を出して加算しているだけです(int型で割り算をすると切り捨てになります) SELECT (SUM(CONVERT(int,LEFT(勤務時間,2)))+SUM(CONVERT(int,RIGHT(勤務時間,2)))/60)*100 +SUM(CONVERT(int,RIGHT(勤務時間,2))) % 60 FROM テーブル

kamogawawa
質問者

お礼

本当にありがとうございました、おかげで実現できました! 感謝します!

関連するQ&A