powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / разница по датам
21 сообщений из 21, страница 1 из 1
разница по датам
    #32458904
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть два поля [exit_date] и [in_date], нужно по ним В ЗАПРОСЕ найти разницу в днях в формате ДНИ.
например: [exit_date]=16.06.2003 и [in_date]=16.06.2003
если вычитать напрямую [exit_date]-[in_date], то получаем 0, но как число,
а если Format([Exit_time]-[in_time];"dd.mm.yyyy", то получаем 30.12.1899 (понятно,что для аксеса это тот же ноль, т.к. отсчет дат начинается именно отсюда)

Вопрос: как мне на данном примере получить нулевую разницу по датам, но не ЧИСЛО, а ДАТУ???
...
Рейтинг: 0 / 0
разница по датам
    #32458932
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
напиши исходные значения и результат которые хочешь получить
непонятно условие задачи

типа посчитать стаж работы в компании в днях месяцах и годах если известна
дата приема на работу и текущая дата?
...
Рейтинг: 0 / 0
разница по датам
    #32458933
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть разбить на (Day-Day), (Month-Month), (Year-Year), а затем собрать обратно спомощью DateSerial((Year-Year),(Month-Month),(Day-Day))...так пойдет ?
...
Рейтинг: 0 / 0
разница по датам
    #32458940
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DateSerial(Year(exit_date)-Year(in_date),Month(exit_date)-Month(in_date),Day(exit_date)-Day(in_date))
...
Рейтинг: 0 / 0
разница по датам
    #32458976
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейК:
надо посчитать разницу в днях между указанными полями ИЛИ сколько дней прошло от начальной даты [in_date] до конечной [exit_date]

Deminik:
в запросах такая штука DateSerial вообще работает?
а то я тут пробую разные варианты, пока кроме ошибок ничего не получил
...
Рейтинг: 0 / 0
разница по датам
    #32458983
Фотография Deminik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пробуй - все-равно лупит как ему надо...
...
Рейтинг: 0 / 0
разница по датам
    #32458995
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[exit_date]-[in_date]

и дает разницу в днях если считать что время одинаковое

в количестве дней какой тут формат даты?
...
Рейтинг: 0 / 0
разница по датам
    #32459019
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подозреваю, что не в днях получается...
попробую тогда полность прояснить в таблице четыре поля Exit_date, Exit_time,
In_date, In_time надо найти разницу в днях и часах между Exit и In.
Время я нахожу нормально: Format([Exit_time]-[in_time];"hh.nn"),
дату вроде тоже: [exit_date]-[in_date]
а вот собрать их вместе не могу, #ошибка.
если разницу по дате определяю: Format([Exit_date]-[in_date];"dd"), получаю гразницу между одной и тойже датой в 30 дней.
че же делать-то?
...
Рейтинг: 0 / 0
разница по датам
    #32459055
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
datediff тебе в помощь.
...
Рейтинг: 0 / 0
разница по датам
    #32459063
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с datediff у меня такая же фигня, как и с DateSerial,
мне щас запрос надо сделать, а не процедурину писать.
а в запросе он совсем не хочет работать...
...
Рейтинг: 0 / 0
разница по датам
    #32459122
о..пупеть
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
о..пупеть

авторВремя я нахожу нормально: Format([Exit_time]-[in_time];"hh.nn"),
дату вроде тоже: [exit_date]-[in_date]
а вот собрать их вместе не могу, #ошибка
если находишь строку (см Format()), и не можешь сконкатенировать строки - это абзац.

если нужны числа, - не пользуйся преобразованием к строке.
...
Рейтинг: 0 / 0
разница по датам
    #32459130
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то я не догоняю.
Допустим имеем:
Код: plaintext
1.
2.
3.
in_date=# 26 / 03 / 2004 #
in_time=# 12 : 00 : 00 #
exit_date=# 27 / 03 / 2004 #
exit_time=# 11 : 00 : 00 #

Что ты должен получить ?
...
Рейтинг: 0 / 0
разница по датам
    #32459134
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДАТА Format([Exit_date]-[in_date];"dd"), получаю гразницу между одной и тойже датой в 30 дней
вот это время Format([Exit_time]-[in_time];"hh.nn") = 08:00

собираем вместе получаем 30 дней 08:00 часов
только день один и тот же 16.03.2004, а время разное Exit_time=18:20:00 и
in_time=10:20:00

вот тебе и о..пупеть
...
Рейтинг: 0 / 0
разница по датам
    #32459136
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to (c)VIG:
я должен получить 23 часа
...
Рейтинг: 0 / 0
разница по датам
    #32459147
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Раскололся"-таки :)

Код: plaintext
1.
?(cdate( "1 / 1 / 3   04 : 00 ")-cdate( "1 / 1 / 3   01 : 00 "))* 24 
  3  
...
Рейтинг: 0 / 0
разница по датам
    #32459151
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
только спрашивали об этом:
in_date=#26/03/2004#
in_time=#12:00:00#
exit_date=#27/03/2004#
exit_time=#11:00:00#

т.е.пример будет другой
(cdate("3/27/4 11:00")-cdate("3/26/4 12:00"))*24
итог ????
...
Рейтинг: 0 / 0
разница по датам
    #32459158
уцццацца
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
охренеть
?FORMAT(0,"dd mm yyyy")
30 12 1899
!
понял теперь, почему ДЕНЬ даты 30 12 1899 = 30
или никуя не понял ?
вместо
FORMAT(0,"dd")
возьми Str(0), или неявно (0 & "")?

уцццацца
...
Рейтинг: 0 / 0
разница по датам
    #32459159
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поторопился я малость.

2Автор

Дата для Акцесса - это всего лишь число с плавающей запятой и "флажком" у соответствующей переменной/поля и т.п., который говорит о том, что значение по возможности следует преобразовать в удобоваримую строку а-ля день/месяц/год.

Что происходит в этой строке?

авторДАТА Format([Exit_date]-[in_date];"dd"), получаю гразницу между одной и тойже датой в 30 дней

1. Ехit_date - in_date
Из даты вычитается дата. Результат нельзя привести, например, к литрам. Получается разница. В виде числа. Дней. Дробная часть - часть дней. О.5 (половина) дня = 12 часам.

2. Format(число;"dd")
Первым аргуменом format получает число дней. Но откуда ему знать, что ты задумал? Коль скоро второй аргумент говорит, что это дата, он и считает "число" датой. 0, как ты уже видел, сопоставляется с 30.12.1899 г., от которой даты он "отрезает" "dd" и возвращает тебе в виде строки.

Разницу в днях ты уже почти получил в п. 1.:
int(Ехit_date - in_date)

В часах:
int(((Ехit_date - in_date) - int(Ехit_date - in_date))*24)

и т.п.
...
Рейтинг: 0 / 0
разница по датам
    #32459175
а даже так
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а даже так
?(cdate("3/27/4 11:00")-cdate("3/26/4 12:00"))*24
23.0000000000582
- то, чо надо (с точностью до ошибки представления чисел с плавающей запятой).

Но я же говорил, хочешь конкатенировать строки - конкатенируй строки

[d1]-[d2] & " дней " & Format([h1]-[h2], "hh nn")

хочешь числа - собирай числа
...
Рейтинг: 0 / 0
разница по датам
    #32459184
(c)VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
дни: DateDiff( "h" , DateAdd( "d" , in_date, in_time), DateAdd( "d" , exit_date, exit_time)) \  24  
часы:DateDiff( "h" , DateAdd( "d" , in_date, in_time), DateAdd( "d" , exit_date, exit_time)) Mod  24 
...
Рейтинг: 0 / 0
разница по датам
    #32460481
faint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вроде разобрался, сенька!

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


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