-PR-
締切済み

Access2000でのデータ型について

  • 困ってます
  • 質問No.14769
  • 閲覧数146
  • ありがとう数4
  • 気になる数0
  • 回答数5
  • コメント数0

お礼率 42% (18/42)

日付・時刻型というデータ型はあるですが、時間型というのは、どうすればよいのでしょうか?
例えば、毎日のトレーニング時間を記録し、その記録データの平均や合計を出したいのですが・・・

よろしくお願いします。
通報する
  • 回答数5
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全5件)

  • 回答No.1

時間を10進数で表現するなら通常の通貨型でいいのでは ないでしょうか?2時間30分なら2.5って感じで。 60進数で表現するなら集計する際に10進数に変換する必要があるかと思います。
時間を10進数で表現するなら通常の通貨型でいいのでは
ないでしょうか?2時間30分なら2.5って感じで。
60進数で表現するなら集計する際に10進数に変換する必要があるかと思います。
関連するQ&A


  • 回答No.2
レベル7

ベストアンサー率 53% (7/13)

エクセルでは時間・日付のデータは 「シリアル値」で管理しています。表示は1:00となっていても、計算に使われるのはシリアル値なので そのまま計算するとうまくいきません。 シリアル値を時間的(?)数値にするには、その値を"1:00:00"で割ってやります。計算対象となる数値をすべて処理してから、もしくは計算後にこの処理をしてやると、うまくいきます。 ちなみに24時間をこえると、日付の ...続きを読む
エクセルでは時間・日付のデータは 「シリアル値」で管理しています。表示は1:00となっていても、計算に使われるのはシリアル値なので そのまま計算するとうまくいきません。
シリアル値を時間的(?)数値にするには、その値を"1:00:00"で割ってやります。計算対象となる数値をすべて処理してから、もしくは計算後にこの処理をしてやると、うまくいきます。
ちなみに24時間をこえると、日付のほうに繰り上がりが生じてしまいますので、(つまり24時間を越えるとまた0時間になってしまう)セルの表示形式を「標準」に戻しておくと、24時間を超える時間についても表示できます。
なお、計算の時はダブルクォーテーションをつけたまま割ってください。
例: =A5/"1:00:00"
これでたぶん上手くいくと思います。
  • 回答No.3
レベル10

ベストアンサー率 48% (79/162)

テーブルを作成された時に、書式(?)という項目が左下にありませんでした? そこの書式を"HH:MM:SS"とされたら、テーブルをプレビューした時に、12:59:59てな具合に表示されると思います。 他の書き方とか、より詳しくは、その項目で、F1キーを押したら、HELPが表示されると思いますので、そちらを参考して下さい。 入力は、:を入力する分手間がかかってしまうと思いますが、 ...続きを読む
テーブルを作成された時に、書式(?)という項目が左下にありませんでした?
そこの書式を"HH:MM:SS"とされたら、テーブルをプレビューした時に、12:59:59てな具合に表示されると思います。
他の書き方とか、より詳しくは、その項目で、F1キーを押したら、HELPが表示されると思いますので、そちらを参考して下さい。

入力は、:を入力する分手間がかかってしまうと思いますが、合計・平均は、そのまま計算出来たと思いますので、60進を10進に置き換えながら入力するよりかはいいと思いますよ。(入力フォームの工夫でいくらでも逃げれますし)

後、時間差を求める時は、datediff関数、何日後とか、何時間後とかは、dateadd関数を使用されればと思います。

なお、Accessを参照せずに、記憶のみで記入してますので、間違ってるかも・・・
補足コメント
Cloes

お礼率 42% (18/42)

Niiさん、回答ありがとうございます。
データ型という大枠の中に一つのパラメータとして書式というものがあると理解しますが、Niiさんの回答の前提のデータ型は、やはり、日付/時刻型でしょうか?
そうであると、合計、平均が出ないのですが・・・
ご検討ください。
投稿日時 - 2000-12-01 02:13:10
  • 回答No.4
レベル10

ベストアンサー率 48% (79/162)

>前提のデータ型は、やはり、日付/時刻型でしょうか? そうです。 >そうであると、合計、平均が出ないのですが・・・ 例 テーブル 時間 日付/時刻型 クエリ-----最初は、合計を SELECT Sum(テーブル.時間) AS 時間の合計 FROM テーブル; このままプレビューすれば、小数点の数値で表示されてしまいますが、時間の合計フィールドのプロパティを ...続きを読む
>前提のデータ型は、やはり、日付/時刻型でしょうか?
そうです。

>そうであると、合計、平均が出ないのですが・・・


テーブル
時間 日付/時刻型

クエリ-----最初は、合計を
SELECT Sum(テーブル.時間) AS 時間の合計
FROM テーブル;

このままプレビューすれば、小数点の数値で表示されてしまいますが、時間の合計フィールドのプロパティを開き、書式を、時刻 (S)にすれば、合計あいません?

クエリ2---合計と平均を
SELECT Sum(テーブル.時間) AS 時間の合計, Count(テーブル.時間) AS 時間のカウント, [時間の合計]/[時間のカウント] AS 平均
FROM テーブル;

以上、クエリで例を示したつもりですが、最終が、文字列という事でしたら、Format関数で作成出きると思います。
補足コメント
Cloes

お礼率 42% (18/42)

Niiさん、こんにちは
毎度、回答いただき、恐縮です。
ご教示に基づき、作業したところ、計算できるようになりました。但し、合計が24時間を越すと、以下のように表示されてしまいます。対処法ありますでしょうか?
25:00 → 1:00
60:00   12:00
よろしくお願いします。 
投稿日時 - 2000-12-04 23:32:14
  • 回答No.5
レベル10

ベストアンサー率 48% (79/162)

書式を dd hh:nn:ss としたら、 25:00→01 01:00:00 60:00→02 12:00:00 と表示されると思います。 日付・時刻型というデータ型を使用している限り、 1日→24時間 1時間→60分 という呪縛からは逃れられないでしょう。 日数計算等をする時には、閏年等を考慮しなくてすむので、非常に便利なのですが、今回の用件からは、ずれてしまっていたみたいですね。 ...続きを読む
書式を dd hh:nn:ss としたら、
25:00→01 01:00:00
60:00→02 12:00:00
と表示されると思います。

日付・時刻型というデータ型を使用している限り、
1日→24時間
1時間→60分
という呪縛からは逃れられないでしょう。
日数計算等をする時には、閏年等を考慮しなくてすむので、非常に便利なのですが、今回の用件からは、ずれてしまっていたみたいですね。すみません。

60:00のように表示したいのならば、時・分、別々のフィールドを作成し、小計:[時]*60+[分]てな具合に、最小の桁にあわせて変換し、その値元にを合計・平均を求めて、最後の表示の時点で、合計:Format([小計] \ 60,"00") & ":" & Format([小計] mod 60,"00")みたいにする位しか思いつかないのですが。

なお、入力フォームを作成されているのならば、テーブルには分に変換後の数値を入れてもいいかな?と思います。
只、その場合、表示の時は、計算して表示しなければならないので、コントロールソースで、フィールドは指定出来ませんが・・・

メモ
Mod 2つの数値の除算を行い、その剰余を返します。
\ 2つの数値の商を計算し、結果を整数で返します。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


新大学生・新社会人のパソコンの悩みを解決!

いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ