Вопрос

Я работаю над тем, чтобы сделать некоторые передачи данных, перемещающие данные из одной базы данных в другую, и я хотел бы сделать это, не используя большую память на компьютере, на которой я запускаю эту программу передачи данных. В настоящее время программа проводится каждую минуту, но я хочу изменить это, чтобы я собирал данные каждый час. В конечном счете, я хочу изменить следующий запрос, чтобы я не захватывал лишь наибольшую ценность, но я получаю данные, которые происходят из последнего часа:

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, моя программа работает, она будет возвращать данные более 09:51:00 до сих пор, также в 11:51:00, возвращают данные с более 10:51:00 до 11:51:00. Я не настолько семейен с доступом, но я вполне способен с запросами. Этот просто заставил меня проиграть. Может ли кто -нибудь помочь понять, как это сделать? Спасибо

Это было полезно?

Решение

С 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:00 до 11:51:00."

Если это означает, что в 11:51:00 ваша таблица данных может включать в себя строки, которые имеют значения [дата / время] позже, чем в 11:51:00, вы можете добавить еще одно условие в предложение, чтобы исключить их.

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