質問 |
||
| QNo.3466504 | SQLServer2005で文字列の時刻の合計を出す方法はありますか? | |
|---|---|---|
| 質問者:to-ko- |
SQLServer2005で以下のテーブルがあります。 [Day] [Time] 1 1:30 1 2:00 2 4:45 3 2:30 3 1:45 Dayフィールド、Timeフィールドは共にvarchar2です。 (Timeには"1:30"の文字列が入っています) このテーブルを読み込むとき、各日ごとの合計を計算して出力するSQL文がわかりません。 ■■ 出力イメージ ■■ Day Time 1 3:30 2 4:45 3 4:15 DateAdd関数やMAX関数等を使って考えましたが実現できませんでした。 こういう処理をSQL文でおこなうことは可能でしょうか? もし実現可能な場合、方法やだいたいのやり方でも結構ですのでご教示いただけませんでしょうか? TimeフィールドがDatetime型から可能でしょうか? それとも、プロシージャや読み込んでから別途計算しなおさないと無理でしょうか? よろしくお願いします。 |
|
困り度:
|
||
| 質問投稿日時: 07/10/27 20:16 |
||
回答良回答20pt |
|
| ANo.1 | >Dayフィールド、Timeフィールドは共にvarchar2です。 SQL Server 2005を使用しているのですよね? varchar2は、「Oracle独自のデータ型」と認識していますが? 時刻をvarcharで管理するメリットって、思い浮かばないのですが? SQL例を提示しておきますので、何をやっているかは自分なりに調べてみてください。 select [day], sum(datepart(hh,[time])) +floor(sum(datepart(mi,[time]))/60) as hh, sum(datepart(mi,[time]))%60 as mm from tbl1 group by [day] |
|---|---|
| 回答者:chukenkenkou | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 07/10/28 05:57 |
|
| |
| この回答へのお礼 | ご回答ありがとうございます。 >varchar2は、「Oracle独自のデータ型」と認識していますが? ご指摘とおりです。私の記述勘違いです。varcharでした。 >時刻をvarcharで管理するメリットって、思い浮かばないのですが? ある会社のシステム増強で、ユーザー先が昔のシステム(デーダベース)をそのまま残したいと要望されたためです。 SQL文のご教示ありがとうございました。 一応中身は理解したつもりですが、明日会社で再度検証します。 ありがとうございました。 |