Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2011, 09:08   #1
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

как в запросе реализовать подсчет количества дней между датами Дата приказа (dprikaz) и Дата исполнения (Disp) и сколько дней осталось с текущей даты до даты исполнения?

так никто не знает?

Последний раз редактировалось Stilet; 27.10.2011 в 08:20.
ГОСЕАН вне форума Ответить с цитированием
Старый 26.10.2011, 13:38   #2
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Все знают . Есть два варианта - арифметика дат через встроенные функции и перевод в единую систему, например обе даты перевести в дни. Какие все студенты важные пошли, ни один язык программирования не указывает. Естественно, здесь же все программируют именно на том, который нужен студенту. А нет, есть всего один язык программирования, поэтому сам вопрос как бы глуп...
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.10.2011, 14:50   #3
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Все знают . Есть два варианта - арифметика дат через встроенные функции и перевод в единую систему, например обе даты перевести в дни. Какие все студенты важные пошли, ни один язык программирования не указывает. Естественно, здесь же все программируют именно на том, который нужен студенту. А нет, есть всего один язык программирования, поэтому сам вопрос как бы глуп...
day(now())-DAY(Disp) не подходит ....если в 2011 а дата в 2012 ...Язык программирования Delphi...СУБД SQL Server2000....по моему ваш ответ глупый

я разочарован

Цитата:
Сообщение от Utkin Посмотреть сообщение
Все знают . Есть два варианта - арифметика дат через встроенные функции и перевод в единую систему, например обе даты перевести в дни. Какие все студенты важные пошли, ни один язык программирования не указывает. Естественно, здесь же все программируют именно на том, который нужен студенту. А нет, есть всего один язык программирования, поэтому сам вопрос как бы глуп...
ваш ответ глуп, вы не находите? или вы только умеете оскорблять?

Последний раз редактировалось Stilet; 27.10.2011 в 08:23.
ГОСЕАН вне форума Ответить с цитированием
Старый 26.10.2011, 14:55   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

А зачем Вам там now()

Цитата:
я разочарован
Сочувствую

Цитата:
ваш ответ глуп, вы не находите?
А Ваш вопрос? Мы как должны были про Дельфи по запаху догадаться?Открою Вам маленькую тайну - есть и другие языки программирования.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.10.2011, 14:55   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

"Перевести в дни" - имелось в виду не в дни года, а в дни от сотворения мира.
Вообще, разве в Delphi не перегружен оператор вычитания для дат? Тупо (TDateTime - TDateTime)?
Abstraction вне форума Ответить с цитированием
Старый 26.10.2011, 14:58   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Вообще, разве в Delphi не перегружен оператор вычитания для дат?
он не перегружем, там дата в принципе есть число с запятой(не помню тип правда) потому и вычитание работает.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.10.2011, 15:01   #7
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
имелось в виду не в дни года, а в дни от сотворения мира.
Точка отсчета не имеет значения, лишь бы она была одинакова для обеих дат.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 26.10.2011, 15:16   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ГОСЕАН, Вы абсолютно неправы!

А вот Вам говорят АБСОЛЮТНО верные вещи!

расчёт на клиенте.
Цитата:
например обе даты перевести в дни.
Код:
var Dpr, Disp : TDatetime;
   daysCount : Integer;
...
begin
   //выполнить запрос
  Dpr := Query1.FieldByName('dprikaz').AsDateTime;
  Disp := Query1.FieldByName('Disp').AsDateTime;
  daysCount := trunc(Dpr)- trunc(Disp);
  ShowMessage('число дней равно '+IntToStr(daysCount));
второе.
но я бы рекомендовал подобные расчёты проводить прямо в запросе.
Это и проще, и надежнее и нагляднее. (разумеется, для этого поля в таблице должны быть типа Date или DateTime)
для этого добавьте в запрос примерно такой код:
Код:
select ...., dprikaz,  disp, datediff(day, [DISP], [dprikaz]) as DaysCount from ....

Последний раз редактировалось Serge_Bliznykov; 26.10.2011 в 15:26.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.10.2011, 03:16   #9
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

пытался сделать такой запрос day(now())-day(Disp), но это не то...пробовал и так NOW()-Disp....это тоже не то...Day(NOW()-Disp)...неверный результат....

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ГОСЕАН, Вы абсолютно неправы!

А вот Вам говорят АБСОЛЮТНО верные вещи!

расчёт на клиенте.

Код:
var Dpr, Disp : TDatetime;
   daysCount : Integer;
...
begin
   //выполнить запрос
  Dpr := Query1.FieldByName('dprikaz').AsDateTime;
  Disp := Query1.FieldByName('Disp').AsDateTime;
  daysCount := trunc(Dpr)- trunc(Disp);
  ShowMessage('число дней равно '+IntToStr(daysCount));
второе.
но я бы рекомендовал подобные расчёты проводить прямо в запросе.
Это и проще, и надежнее и нагляднее. (разумеется, для этого поля в таблице должны быть типа Date или DateTime)
для этого добавьте в запрос примерно такой код:
Код:
select ...., dprikaz,  disp, datediff(day, [DISP], [dprikaz]) as DaysCount from ....
Код:
SELECT nvd, DataDok, NDok, N_dok, FIO, sod, Expr1, datadisp, mes, den, datediff(day, [DATE()], [datadisp]) as DaysCount
FROM dbo.ispoln Dbo_ispoln
[/QUOTE]
как правильней сделать?

Последний раз редактировалось Stilet; 27.10.2011 в 08:25.
ГОСЕАН вне форума Ответить с цитированием
Старый 27.10.2011, 06:56   #10
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию Разность дат и времени в oracle

так как ничего не было предоставлено (язык, субд, и т.п.), то.. вот
Код:
SELECT    TRUNC (T_DATE - from_date)
       || ' day(s) '
       || TO_CHAR (TRUNC (SYSDATE) + (T_DATE - from_date),
                   'FMHH24 "hour(s)" MI "minute(s)" SS "second(s)"'
                  ) "Разность дат"
  FROM (SELECT TO_DATE (:date1, 'dd/mm/yyyy hh24:mi:ss') t_DATE,
               TO_DATE (:date2, 'dd/mm/yyyy hh24:mi:ss') from_date
          FROM DUAL)
from_date - t_date = результат

пс: нашел такое оригинальное решение в интернетах, когда приспичило.
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция преобразования количества дней в количество лет atenon Microsoft Office Access 4 11.09.2010 18:42
подсчет дней Tadjik Microsoft Office Access 3 06.09.2010 14:24
Определение количества указанных дней в любом месяце valerij Microsoft Office Excel 3 25.06.2010 15:46
Подсчет количества дней за определенный месяц konon0405 Microsoft Office Excel 5 30.03.2010 09:04
подсчет рабочих дней ruavia3 Microsoft Office Excel 14 01.03.2010 11:22