こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

締切り済みの質問

access 時間計算 開始と終わりの計算方法

例えば 12時~13時  あたまの中では1時間だとすぐに出るのですが
アクセスだとちょっと違うようです

申し訳ありませんが、 計算法わかる方がいらっしゃいましたら
ご教示のほどよろしく願いします

投稿日時 - 2015-12-31 03:22:56

QNo.9103896

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.2

#1です。少し例示・具体論をすると
計算が自由なので、エクセルで説明すると
A列   B列ーー>式はA列表示の式
=12/140.5     ’12時
=13/240.541666667  ’13時
=B3-B20.041666667  ’差の1時間
=B4*241         1時間と表示
--
12時=12/240.5
13時=13/240.541666667
間隔=B3-B20.0416666671:00:00
数値で表示=B4*241
12時=12/240.5
12時間12分=12/24+12/(24*60)0.508333333
両者の和=C6+C71.008333333
数字で表示=C8*2424.2
表示形式で表示0:12:00
これを使いたいときはこれを使う
表示形式で表示 [hh].mm24.12
普通はこちらを使う
しかしアクセスにはこの表示形式([hh].mm)はないようだ。
ーー
B4の値、に24倍する手のほかに、
B3を表示形式を「時刻」に設定すると
1:00:00すなわち1時間0分0秒と表示される。
表示形式の対応処理に頼った方がよいと思う。
--
多数人の時間合計を出すなどの場合は
今あるアクセスのデータは
(1)時間数字(時間と分を別フィールドで数字)で入力されている
(2)文字列で時間と分を区切り文字を入れて入力されている
(3)アクセスの時間分秒の様式に従って入力されている
など考えられる。
自分に納得させたければ、時間と分を分けて、それぞれを加算し、
最終合計で分を1時間あたり60分に換算(除算)して、商を時間数に
繰り上げて足せばよい。
何万人もの従業員の時間や測定の時間と分データが何万もある場合は
これでやれば、データタイプ(整数)の数限度まで安心して加算できる。
(3)から時間と分に分けるのはHour関数、Minute関数でできる。
ーー
1日先や1か月先などは、起点の年月日によって(例2月や年末など)、
複雑に表示が変わるから、DateAdd関数を使ってシステムに任せたほうがよい。
===
上記の、どの辺に関する疑問を聞きたいのか、明示して質問すべきと思うが。
あるいはどれも的外れとか。

投稿日時 - 2015-12-31 16:10:25

ANo.1

結論から言うと(アクセスの日付・時刻の)関数を使うのです。
どの関数を使うかぐらいは、自分でWEBででも照会して、勉強すること。
ーーー
エクセルの期間・時刻の表現の仕組みのことを知ってますか。日付・時刻シリアル値のことです。
ここに質問するレベルの人は、充分の知識が無いようです。
アクセスでも、こんな質問コーナーに質問しなくても
WEBで「アクセス 時間計算 仕組み」で照会すると
ある程度判るのに、なぜ前もって照会をやらないのかな。
たとえば、
https://support.microsoft.com/ja-jp/kb/210276
などが出てきます。
エクセルの日付・時刻シリアル値のことを判っておれば、わかりやすいと思う。
要点は、上記記事より
Microsoft Access (以下 Access) は、日付/時刻型データを倍精度浮動小数点数 (小数点以下 15 位まで) として格納します。
倍精度浮動小数点数の整数部分は日付を表します。小数点部分は時刻を表します。
有効な日付値の範囲は、-657,434 (西暦 100 年 1 月 1 日) ~ 2,958,465 (西暦 9999 年 12 月 31 日) です。
日付値 0 は 1899 年 12 月 30 日を表します。Access は、1899 年 12 月 30 日より前の日付を負の数として格納します。
有効な時刻値の範囲は、.0 (00:00:00) ~ .99999 (23:59:59) です。数値は、1 日を基にした小数値で表されます。
数値に 24 を掛けると、数値を時、分、および秒に変換できます。
のあたりでしょう。
ーー
ポイントは
(1)日付で1日を1とする(Excelと同じ)
(2)歴史上の日付1日に連続番号を振る(範囲がエクセルより広がっている)
(より広い分野で使われることを想定したものか?)
(3)時刻は1日の24時間を1とした数値で表す(エクセルと同じ)
上記と現実・日常の時間時刻の考え方・使い方・表現の違いは、
アクセスの時間・時刻に関する「関数」や「表示形式」で処理します。
VBA程度のプログラムの自作すると、ややこしいので、やろうとしても無駄。
テーブルのセルへの日付や時刻の表現は、アクセスの書式を受けもつシステムが、中に入ってしまって、上記のようなシリアル値は、ユーザーに取って、前面に出ないようになっいる。
あたり前ですが、上記の仕組みがわからなくても、初めてのユーザーでも判るようになっている。
上記の仕組みが便利なのは、日付間隔や、何日後や、何日前は引き算・足し算でできることです。
その代わり、(特に国別で)日常に使う日付や年号や時刻日付の表現方法(日付書式)は設計者は、またシステムは対応に苦労したものと想像します。
時間・時刻関係の関数(アクセス)の詳細はアクセスの解説書やWEBで調べればわかるはず。
質問は、事前に勉強して、もっと疑問の的を絞って行わないと、広範囲の人に答えてもらう、このコーナーのメリットが生かせないよ。
関数の説明は略し、原理論にこだっわたので、本回答に不満かもしれないが。

投稿日時 - 2015-12-31 10:39:47

お礼

私の方でも、様々な検索をかけて調べて勉強しているのですが
なかなか理解できないことがあります。 
何でも知っている方からみれば 
こんなのも知らないの?バカじゃない。
調べれば済むものを。のこのここんなところで質問しなくてもって
私の中で受け止められる回答をいただいております
わからないものは、どうやってもわからなく戸惑っています
そういうなかで質問しているので 回答者も こんな検索すれば
わかるでしょ的な感じで回答しないでほしいです。
しかも、原理論レベルで。

投稿日時 - 2015-12-31 19:07:19

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-