|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.07.2007, 19:47 | #1 |
Форумчанин
Регистрация: 03.05.2007
Сообщений: 247
|
интересная задача про DataTimePicker
помогите решить задачу.
1- на форме находится DataTimePicker, из которого пользователь выбирает необходимую дату. (условие привязана к dakta:DateTime) Надо: На выбранную дату выбрать данные после 8 утра и подсчитать записи + следующую дату до 8 утра тоже подсчитать и суммировать, или промежуток от выбранной даты + следующей даты от 8 до 8 утра подсчитать количество записей. как это сделать? |
12.07.2007, 11:19 | #2 |
Участник клуба
Регистрация: 07.07.2007
Сообщений: 1,518
|
Код:
|
12.07.2007, 12:42 | #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( 1) and date( 2) and Time(:v1)>'8:00' and Time(:v2)<'8:00'.....); 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. |
|
12.07.2007, 12:52 | #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. |
|
12.07.2007, 13:02 | #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. |
13.07.2007, 17:10 | #6 | |
Форумчанин
Регистрация: 03.05.2007
Сообщений: 247
|
Цитата:
|
|
14.07.2007, 20:45 | #7 |
детский тренер
Форумчанин
Регистрация: 08.06.2007
Сообщений: 532
|
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
|
15.07.2007, 10:35 | #8 |
Форумчанин
Регистрация: 03.05.2007
Сообщений: 247
|
|
15.07.2007, 16:37 | #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 |