Как я могу изменить текстовое поле на дату/время для расчета продолжительности

#ms-access

Вопрос:

Я пытаюсь рассчитать продолжительность времени от начального поля до конечного поля из таблицы dbo_table. Я извлекаю таблицу из своего программного обеспечения для планирования, поэтому я не могу контролировать форматирование. Поля в текстовом формате вводятся как «09:00» и «15:30», чтобы соответствовать 9:00 утра и 3:30 вечера. Мне нужно кое-как преобразовать их во время, чтобы их можно было математически суммировать для достижения продолжительности времени. Мы будем очень признательны за любую помощь!! Спасибо.

Ответ №1:

Используется CDate для преобразования в дату, а затем вычитания:

 Duration = CDate(CDate([TimeEnd]) - CDate([TimeStart]))
 

Продолжительность, которую вы можете отформатировать как время, используя этот формат h:nn .

Комментарии:

1. .. до тех пор, пока поле не изменится с ТЕКСТОВОГО на АКТУАЛЬНОЕ . Да, и это именно то, что CDate делает. DateValue игнорирует часть времени; если вам не нравится CDate , используйте TimeValue .

2. Спасибо вам, добрый сэр, нужно было изменить еще пару вещей, чтобы это сработало, но мы начинаем и работаем. Еще раз спасибо вам!!

Ответ №2:

Попробуйте функцию DateDiff() с текстовыми данными. Доступ должен автоматически приводить к дате/времени. Пример:

DateDiff("n","09:00","15:30")

возвращается через 390 минут.

Это предполагает, что временной диапазон находится в один и тот же день.