как получить данные из поля TimeStamp yyyymmdd

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Artur59
Сообщения: 3
Зарегистрирован: 07 сен 2005, 08:37

как получить данные из поля TimeStamp yyyymmdd

Сообщение Artur59 » 07 сен 2005, 08:44

Подскажите как выдрать данные из сервера Interbase
SQL запросом в БД есть поле с датой формат 2005-05-12 14:54:00
Как при помощи DateTimePicker выдернуть все записи за , например, 12-е число. Все записи за 12 имеют разное время.

Пробывал делать так получатся но чтоб узнать за 12.05 нужно вводить с 11 по 13 тогда выводит 'WHERE PDATE BETWEEN '''+DateToStr(Form6.DateTimePicker1.DateTime)+'''AND'''+DateToStr(Form6.DateTimePicker2.DateTime)+''''); Но за период не подходит.

Нужно как-нибуть так но ничего не выводит 'PDATE ='''+DateToStr(Form6.DateTimePicker2.DateTime)+'''');

Чуть не забыл Delphi 7.0

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 07 сен 2005, 10:51

"за 12-ое число", это как раз между (between) 0 часов 0 минут 0 секунд 12-го числа и 23 часа 59 минут 59 секунд 12-го же числа.

Artur59
Сообщения: 3
Зарегистрирован: 07 сен 2005, 08:37

Сообщение Artur59 » 07 сен 2005, 11:59

А как используя один датепик. Получиться данные за 12-е число, как отбросить время при выборке отставить только дату?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 07 сен 2005, 12:11

гм, вопрос очень странный. Ты программируешь уже сколько?
Алгоритмически есть 2 подхода -
1. урезать timestamp на сервере, проще всего через cast as date. Сравнивать с переданной с клиента датой же, а не датой-временем.
2. передать с клиента дату с временем 00:00:00 и 23:59:59, сделать поиск по дате с between

если есть индекс по столбцу даты на сервере, то в первом случае он не будет использоваться, во втором будет.

p.s. объяснение очень простое, и в общем то, слабо относится к IB/FB. Больше таких объяснений давать не буду.

Artur59
Сообщения: 3
Зарегистрирован: 07 сен 2005, 08:37

Сообщение Artur59 » 07 сен 2005, 12:34

kdv писал(а):гм, вопрос очень странный. Ты программируешь уже сколько?
Неделю )
Алгоритмически есть 2 подхода -
1. урезать timestamp на сервере, проще всего через cast as date.
так-так а как это сделать?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 07 сен 2005, 13:34

прочитать про cast в доке.

Ответить