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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2010, 13:44   #1
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию Поле типа TIMESTAMP и Like

У меня в таблице есть поле типа TIMESTAMP, в нем дата и время, типа 20.09.2010 13.43.27, я делаю так
Код:
select * from table1 where id=1 and data like '20.09.2010%'
Но возвращается пустой набор. Почему, что я делаю не так?
tarakan1983 вне форума Ответить с цитированием
Старый 20.09.2010, 13:48   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
select * from table1 where id=1 and day(data)=20 and month(data)=09 and year(data)=2010
Хотя на самом деле мона применить функции работы с датой, но все зависит от конкретной СУБД
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.09.2010, 13:51   #3
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
select * from table1 where id=1 and day(data)=20 and month(data)=09 and year(data)=2010
Хотя на самом деле мона применить функции работы с датой, но все зависит от конкретной СУБД
Если так то

Цитата:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Может я не так объяснил?
Мне надо выбрать записи, за определенный период например с 01.08.2010 по 01.09.2010, а записи отобразить со временем.

Последний раз редактировалось tarakan1983; 20.09.2010 в 13:54.
tarakan1983 вне форума Ответить с цитированием
Старый 20.09.2010, 13:56   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

СУБД то какая?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 20.09.2010, 13:58   #5
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

*.GDB, Interbase. Пользуюсь SQL Manager for InterBase & Firebird.
tarakan1983 вне форума Ответить с цитированием
Старый 20.09.2010, 14:46   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Дата и время - это вещественное число. Целая часть - дата, дробная - время.
1) Можно попробовать преобразовать значение в БД в дату (с обнулением времени)
2)
Нас интересуют запись с 01.08.2010 по 01.09.2010,
т.е. 01.08.2010 0:00:00 <= x < 02.09.2010 0:00:00
Читаем про параметризованные запросы. Пишем что-то вроде:
Код:
select *
from table1
where id=1 and
(data >= :date_begin) and (data < :date_end)
У Interbase только как бы не : было для параметров, а ? или еще какой символ.
Ну и передаём в качестве параметров:
date_begin 01.08.2010 и date_end 02.09.2010
pu4koff вне форума Ответить с цитированием
Старый 20.09.2010, 15:00   #7
tarakan1983
Форумчанин
 
Аватар для tarakan1983
 
Регистрация: 09.09.2008
Сообщений: 418
По умолчанию

Примного благодарен надо было в запрос вместо знака процента 0:00:00
tarakan1983 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поле типа BigInt + TIBTable SNUPY БД в Delphi 2 04.02.2010 12:30
Поле типа TLargeIntField компонента TTable AleksP БД в Delphi 1 20.10.2008 22:06
Поиск слова в поле типа МЕМО БД PARADOX KAZAKH БД в Delphi 2 05.06.2008 07:22
Вставка записи в поле графического типа Bibigul БД в Delphi 3 10.04.2007 16:07