![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 03.05.2007
Сообщений: 247
|
![]()
помогите решить задачу.
1- на форме находится DataTimePicker, из которого пользователь выбирает необходимую дату. (условие привязана к dakta:DateTime) Надо: На выбранную дату выбрать данные после 8 утра и подсчитать записи + следующую дату до 8 утра тоже подсчитать и суммировать, или промежуток от выбранной даты + следующей даты от 8 до 8 утра подсчитать количество записей. как это сделать? |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 | |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
![]()
xxx mn_fuzka xxx
Цитата:
begin Query.Close; Query.SQL.Clear; Query.SQL.Add('Select * from MyTable'); Query.SQL.Add('where data between date( ![]() ![]() Query.Parametrs[0].value:=DateTimePicker1.date; Query.Parametrs[1].value:=DateTimePicker2.Date; Query.Parametrs[2].value:=DateTimePicker2.Time; Query.Parametrs[3.value:=DateTimePicker2.Time; Query.ExecSQL; aCount := Query.RecordCount; end; xx mn_fuzka xx
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 12.07.2007 в 14:24. |
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 20.06.2007
Сообщений: 270
|
![]() Цитата:
Код:
А сейчас конкретное применение полученной информации непосредственно к твоей задаче. Составляем запрос на выборку: SELECT ... FROM ... WHERE (dakta>='20.01.2007'+8/24) AND (dakta<'20.01.2007'+8/24+1) , где '20.01.2007' - значение чистой даты из DateTimePicker оно будет трактоваться как '20.01.2007 00:00:00'; 8/24 - 8 часов из 24-часового промежутка суток; 1 - это 1 сутки или 24 часа. тогда выражение '20.01.2007'+8/24 будет трактоваться как '20.01.2007 08:00:00', а выражение '20.01.2007'+8/24+1 будет уже '21.01.2007 08:00:00' Вот собственно и все. ---------- PS: В книге Аллен Дж. Тейлор "SQL для чайников", опирающейся на стандарт SQL:1999, написано буквально следующее: Код:
select * from 'mdatt.db' where (mdatt>='20.01.2007') and (mdatt<='20.01.2007' + interval '1' day) в TQuery SQL выдает ошибку: Invalid use of keyword. Token1: '1') Line Number: 1 Может кто скажет где грабли?
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько? (с) Библия. Вольный перевод с древнееврейского. Последний раз редактировалось Andrei; 12.07.2007 в 13:09. |
|
![]() |
![]() |
![]() |
#5 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
![]()
xxx mn_fuzka xxxтеория вреная.... Советую использовать Between(Если я правильно написал)Синтаксис следующий:
....Where data between Интервал1 and интервал2 В твоем случае не написано поле типа Date ...попробуй добавить поле Datt типа date и потом так: select * from 'mdatt.db' where (datt>='20.01.2007') and (datt<='20.01.2007' + interval '1' day) Просто в твоем случае имя поля совпадает с именем таблицы... Может, из-за этого и запарка..... А та х.з....Синтаксис правильный.... Если ты будешь использховать MySQL, то там нужно немного не так дату писать: 2007-01-20...... А вообще DateTimePicker1.Date + 1 ; // и даст тебе на 1 день больше...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Последний раз редактировалось Pitbull; 12.07.2007 в 14:29. |
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 03.05.2007
Сообщений: 247
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
![]()
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 03.05.2007
Сообщений: 247
|
![]() |
![]() |
![]() |
![]() |
#9 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
![]() тю.... У меня MySQL 5.0 и ODBC 3. - все работает....
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Занесение значения DataTimePicker в базу | inret | Общие вопросы Delphi | 3 | 09.05.2008 15:21 |
Интересная задача. Нужны идеи ее решения | KnDmPetr | Паскаль, Turbo Pascal, PascalABC.NET | 11 | 05.03.2008 18:43 |
Интересная задача | Ser | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 27.02.2008 00:19 |
Интересная задача(MediaPlayer) | PilGrim | Компоненты Delphi | 3 | 03.12.2007 08:46 |