質問

私は、データをあるデータベースから別のデータベースに移動するデータ転送を行うことに取り組んでおり、このデータ転送プログラムを実行しているコンピューターで多くのメモリを使用せずにこれを行いたいと思います。現在、プログラムは毎分実行されていますが、これを変更して、1時間ごとにデータを取得しています。最終的に、私は次のクエリを変更して、私が最も価値だけをつかむのではなく、過去1時間からのデータをつかんでいるようにしたいと思います。

SELECT Data.[Date / Time],
       DATA.[Hot Strip Mill Total],
       Data.[Basic Oxygen Furnace Total],
       Data.[Electro-Arc Furnace Total],
       Data.[J-9 Shop Total],
       Data.[Levy Maintence Building Total],
       Data.[Ford Body Shop Total],
       Data.[Ford Chiller Building Total],
       Data.[Ford Dearborn W Plant Total],
       Data.[Ford Dearborn E Plant Total], 
       Data.[Ford Dearborn Balcony Total], 
       Data.[Ford Final Assembly Total],
       Data.[Ford Frame Plant Total], 
       Data.[Ford Dearborn N Plant Total],
       Data.[Ford Tool and Die Total], 
       Data.[Ford Paint Plant Total],
       Data.[Ford Glass Plant Total], 
       DATA.[Hot Strip Mill Rate], 
       Data.[Basic Oxygen Furnace Rate], 
       Data.[Electro-Arc Furnace Rate],
       Data.[J-9 Shop Rate],
       Data.[Levy Maintence Building Rate],
       Data.[Ford Body Shop Rate],
       Data.[Ford Chiller Building Rate],
       Data.[Ford Dearborn W Plant Rate],
       Data.[Ford Dearborn E Plant Rate],
       Data.[Ford Dearborn Balcony Rate],
       Data.[Ford Final Assembly Rate],
       Data.[Ford Frame Plant Rate],
       Data.[Ford Dearborn N Plant Rate],
       Data.[Ford Tool and Die Rate],
       Data.[Ford Paint Plant Rate],
       Data.[Ford Glass Plant Rate]
       FROM DATA  
       WHERE Format(Data.[Date / Time], 'mm/dd/yyyy hh:nn:ss') >=
           (select Format(max(Data.[Date / Time]),'mm/dd/yyyy hh:nn:ss') from Data);

現在、午前10時51:00です。私のプログラムは現在、午前9時51:00を超えてデータを返します。午前11時51分まで。私はアクセスがあまり家族ではありませんが、クエリでかなり能力があります。これは私を失っただけです。誰かがこれをどのように達成するかを理解するのを手伝うことができますか?ありがとう

役に立ちましたか?

解決

1日= 1であるため、したがって1時間= 1/24。だから - 楽しみのために - あなたはあなたの状態を次のように表現することさえできます

WHERE Data.[Date / Time] >= (Now()-1/24)

他のヒント

データのデータ型が日付 /時刻である場合、日付ベースの比較で値を使用する場合、format()を適用する必要はありません。

WHERE Data.[Date / Time] >= DateAdd("h",-1, Now())

このアプローチは、特に[日付 /時刻]フィールドがインデックス化されている場合、テーブルのすべての行でformat()を使用するよりもはるかに高速になる可能性があります。

この文であなたが何を意味したのかわかりません:

"同様に、午前11時51:00に、午前10時51分を超えるデータを午前11時51分まで返します。"

それが午前11時51分に、データテーブルには午前11時51分より後に[日付 /時刻]値がある行が含まれることを意味する場合、Where句に別の条件を追加してそれらを除外することができます。

WHERE Data.[Date / Time] >= DateAdd("h",-1, Now()) AND Data.[Date / Time] < Now()
WHERE Format(Data.[Date / Time], 'mm/dd/yyyy hh:nn:ss') >= DateAdd("h",-2, Now())
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top