Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Расчеты из полей с датой, Как произвести расчеты из двух дат.. 
V
    Опции темы
morpheyushka
Дата 8.8.2008, 11:55 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



если хочешь делать это дело на уровне SQL-запроса, то тебе поможет чудо функция DATEDIFF ( datepart , startdate , enddate )

Цитата

Syntax
DATEDIFF ( datepart , startdate , enddate ) 

Arguments
datepart

Is the parameter that specifies on which part of the date to calculate the difference. The table lists dateparts and abbreviations recognized by Microsoft® SQL Server™.

Datepart            Abbreviations 

Year                      yy, yyyy 
quarter                  qq, q 
Month                    mm, m 
dayofyear              dy, y 
Day                        dd, d 
Week                    wk, ww 
Hour                      hh 
minute                   mi, n 
second                  ss, s 
millisecond             ms 


startdate

Is the beginning date for the calculation. startdate is an expression that returns a datetime or smalldatetime value, or a character string in a date format. 

Because smalldatetime is accurate only to the minute, when a smalldatetime value is used, seconds and milliseconds are always 0.

If you specify only the last two digits of the year, values less than or equal to the last two digits of the value of the two digit year cutoff configuration option are in the same century as the cutoff year. Values greater than the last two digits of the value of this option are in the century that precedes the cutoff year. For example, if the two digit year cutoff is 2049 (default), 49 is interpreted as 2049 and 2050 is interpreted as 1950. To avoid ambiguity, use four-digit years.

For more information about specifying time values, see Time Formats. For more information about specifying dates, see datetime and smalldatetime. 

enddate

Is the ending date for the calculation. enddate is an expression that returns a datetime or smalldatetime value, or a character string in a date format.

Return Types
integer


И смотри разницу хоть в месяцах, хоть в днях, хоть в неделях - вобщем как хочешь)

ЗЫ Если что то не понятно - пиши, реализуем!

Это сообщение отредактировал(а) morpheyushka - 8.8.2008, 11:57


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
pseud
Дата 8.8.2008, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



morpheyushka
Цитата(crem78 @  7.8.2008,  15:06 Найти цитируемый пост)
Использую базу base.DB


Цитата(morpheyushka @  8.8.2008,  11:55 Найти цитируемый пост)
 by Microsoft® SQL Server™.

ну и при чем здесь жареные гвозди?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
morpheyushka
Дата 8.8.2008, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Цитата(pseud @  8.8.2008,  15:18 Найти цитируемый пост)
ну и при чем здесь жареные гвозди? 

Да я просто из справки цитату сделал...суть же не в этом...человек хочет разницу в датах получить, причем, если я правильно понял, на уровне запроса. Вот я и подсказал ему функцию, которая облегчает в данной ситуации жизнь smile 
А в цитате синтаксис расписан (правда на англ. языке)...чего тут не понятно? smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
pseud
Дата 8.8.2008, 16:46 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(morpheyushka @  8.8.2008,  15:36 Найти цитируемый пост)
чего тут не понятно?


я не спорю, что в MS SQL твоя чудесная функция заработает.
можно еще накопать кучу функций из Oracle, Informix и пр.
но ни одна из них не заработает.
думаю ты уже догадался почему.


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
morpheyushka
Дата 8.8.2008, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зеленый человек
**


Профиль
Группа: Участник
Сообщений: 563
Регистрация: 26.2.2008
Где: Киев

Репутация: нет
Всего: 8



Цитата(pseud @  8.8.2008,  16:46 Найти цитируемый пост)
думаю ты уже догадался почему.

да...теперь понял...просто увидел слово SQL и включил бронь по поводу Microsoft SQL Server.
Перечитал заново ветку, и не нашел ни одного слова про тип базы)))


Интересно, а можно съехать на конец рабочей недели smile 


--------------------
user posted image
Спасибо делается вот так!!!
PM MAIL WWW   Вверх
crem78
  Дата 16.8.2008, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2008

Репутация: нет
Всего: нет



Съехать на конец рабочей недели можно, а иногда даже нужно. Как говориться, если долго мучиться, что ни будь получиться. Так оно и вышло. Воспользовался всеми вашими советами и рекомендациями, получилось то, что хотел. Теперь запрос работает правильно, да еще и в отчет передает. Спасибо большое за помощь, очень помогли. Тема закрыта.  smile  smile 
PM MAIL   Вверх
crem78
  Дата 16.8.2008, 12:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 2.8.2008

Репутация: нет
Всего: нет



В поисках решения, подсказали еще одно решение, может кому тоже поможет. smile 

Все зависит от конкретной СУБД.
Но схема одна:
(продолжаем):

Код

SELECT *
FROM "base.DB" Base
where Otsldata=sysdate+ to_date('7', 'dd);

и 
...
where Syd=sysdate- to_date('3', 'mm');


PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0795 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.