Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > СУБД, общие вопросы > Работа с датой


Автор: blur 15.8.2006, 14:43
Народ, подскажите плиз как можно получить записи из базы за определенный период. Т.е. мне нужно получить например записи за последние 3 года (поле даты имеет тип Date).

Автор: boevik 15.8.2006, 14:46
Реализация работы с датой меняется от СУБД к СУБД.
K примеру SQL server:
Код

select * from table1 where mydate < '2004-08-01'


Access:
Код

select * from table1 where mydate < #08/01/2004#


Автор: blur 15.8.2006, 14:52
Цитата(boevik @ 15.8.2006,  14:46)
Реализация работы с датой меняется от СУБД к СУБД.
K примеру SQL server:
Код

select * from table1 where mydate < '2004-08-01'


Access:
Код

select * from table1 where mydate < #08/01/2004#

Ты меня не понял. Мне нужно взять записи именно за период (3 года) :
select * from table where input_date between "?" and current_date - Вот что подставить вместо "?"  ?  
А база данных Oracle, но желательно сделать это по стандарту SQL92.

Автор: boevik 15.8.2006, 15:28
Если бы T-SQL, то
select * from table1 where input_date between dateadd(year, -3, getdate()) and getdate()

Не уверен. что можно обойтись толко SQL-92.

Автор: LSD 15.8.2006, 16:19
Код
select * from table where input_date > (sysdate - 1095) and input_date < sysdate

Автор: comtat 18.8.2006, 15:04
в MySql можно так 
Код

select * from table1 
where 
mydate>=Дата+INTERVAL 3 YEAR
and mydate<Дата

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)