Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом на вычисление интервала времени / 9 сообщений из 9, страница 1 из 1
12.04.2018, 02:07
    #39628786
Юрий495
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
Друзья, помогите начинающему. Допустим имеются два поля : TIME1- время начала процесса, TIME2-время окончания процесса, оба эти поля изначально имеют числовой формат. Чтобы вычислить временной интервал в формате (чч:мм:сс) я применяю выражение cDate([TIME2])-cDate([TIME1]). Но (!) если в какой-либо строке поля TIME1 стоит пустое значение , т.е. время не забито , то появляется сообщение "Недопустимое значение NULL". Как мне написать запрос, обойдя пустые значения в поле TIME1, т.е. если TIME1=null, то на выходе было бы тоже пустое значение ?
...
Рейтинг: 0 / 0
12.04.2018, 07:42
    #39628830
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
Юрий495TIME1- время начала процесса, TIME2-время окончания процесса, оба эти поля изначально имеют числовой формат .Уточните. DDL или хотя бы примером.

Юрий495если TIME1=null, то на выходе было бы тоже пустое значение ?
Код: vbnet
1.
IIF(IsNull([TIME1]);null;cDate([TIME2])-cDate([TIME1]))
...
Рейтинг: 0 / 0
12.04.2018, 09:34
    #39628859
Нужна помощь с запросом на вычисление интервала времени
ИМХО, можно просто [TIME2] - [TIME1], а вид чч:мм:сс получить с помощью свойства "Формат" поля.
ЗЫ. "оба эти поля изначально имеют числовой формат" - формат или тип? С какой целью?
...
Рейтинг: 0 / 0
12.04.2018, 11:52
    #39628963
Юрий495
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
AkinaУточните. DDL или хотя бы примером.

Допустим имеем
TIME1TIME215:20:2410:46:3012:08:5712:07:3612:25:35 12:14:3711:57:3915:10:1515:05:35
На выходе должны получить
ИТОГО4:33:540:01:21 : :0:16:580:04:40
Что касается числового формата полей TIME1 и TIME2, то это изначально было так почему-то сохранено (не мной). Мне же на выходе нужен результат в виде полного формата времени (чч:мм:сс)
...
Рейтинг: 0 / 0
12.04.2018, 12:20
    #39628986
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
А сперва просил TIME 1 =null...

Код: vbnet
1.
IIF(IsNull([TIME1]) OR IsNull([TIME2]);null;cDate([TIME2])-cDate([TIME1]))


Форматирование итогового null в пару двоеточий-то осилишь?
...
Рейтинг: 0 / 0
12.04.2018, 17:44
    #39629372
Юрий495
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
AkinaА сперва просил TIME 1 =null...


Пардон, это я в примере столбцы перепутал, конечно пропуск в TIME1.
А так вроде полёт нормальный, благодарю.
Кстати, а если для того же результата вместо CDate использовать функцию DateDiff ?
Например вот так :

DateDiff("n";[TIME1];[TIME2])\60 & ":" & Format(DateDiff("n";[TIME1];[TIME2]) Mod 60;"00")&":" & Format(DateDiff("s";[TIME1];[TIME2]) Mod 60;"00")

Но на выходе даёт на 1-у минуту больше. Где я мог накосить в этом выражении?
...
Рейтинг: 0 / 0
12.04.2018, 18:13
    #39629397
sdku
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
Юрий495,а так:
Код: vbnet
1.
2.
3.
Function my1(mydate1, mydate2)   'mydate2>mydate1
my1 = Int(CDate(mydate2) - CDate(mydate1)) & " дн. " & Format(CDate(mydate2) - CDate(mydate1) - Int(CDate(mydate2) - CDate(mydate1)), "h:n:s") 'или hh:nn:ss
End Function

для подсчета только времени допилите сами
...
Рейтинг: 0 / 0
12.04.2018, 19:29
    #39629428
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
Юрий495на выходе даёт на 1-у минуту большеОкругление...
...
Рейтинг: 0 / 0
12.04.2018, 21:20
    #39629497
Юрий495
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужна помощь с запросом на вычисление интервала времени
sdkuFunction my1(mydate1, mydate2) 'mydate2>mydate1
my1 = Int(CDate(mydate2) - CDate(mydate1)) & " дн. " & Format(CDate(mydate2) - CDate(mydate1) - Int(CDate(mydate2) - CDate(mydate1)), "h:n:s") 'или hh:nn:ss
End Function

[/src]для подсчета только времени допилите сами

Надо будет подумать на досуге
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Нужна помощь с запросом на вычисление интервала времени / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]