Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Формирование запроса к таблице с ненормальной датой [MSSQL]


Ольга ©   (2005-08-01 15:53:00) 

Есть такая табличка:
CREATE TABLE [dbo].[elen30]
( [ID] [int] NOT NULL ,
[dd] [char] (2) ,           -- день
[mm] [char] (2) ,           -- месяц
[yyyy] [char] (4) ,         -- год
[Value] [numeric](28, 5) NOT NULL
) ON [PRIMARY]
Параметры запроса к этой таблице:
@beg datetime, @end datetime

Не могу правильно составить запрос:

SELECT *
FROM elen30
WHERE
(yyyy BETWEEN DatePart(yyyy, @beg) AND DatePartyyyy,@end)) AND
(mm BETWEEN DatePart(mm, @beg) AND DatePart(mm,@end)) AND
(dd BETWEEN DatePart(dd, @beg) AND DatePart(dd,@end))

Естественно, этот запрос не выбирает данные с 31 по 1 число (с 12 по 1 месяц).
CASE во WHERE вставлять нельзя или у меня не получается?


DiamondShark   (2005-08-02 15:41:00) [1]


> А почему бы [dd], [mm], [yyyy] не хранить в одном поле типа
> datetime?

А это, типа, проектировщики слышали звон, да не поняли откуда он.


evvcom   (2005-08-02 08:56:00) [2]

А почему бы [dd], [mm], [yyyy] не хранить в одном поле типа datetime?


Fay   (2005-08-01 16:17:00) [3]

2 Ольга   (01.08.05 16:14) [3]
8)


Ольга   (2005-08-01 16:14:00) [4]

Уже дошло. Это же унифицированный формат yyyymmdd!
Спасибо, как же я сама недопетрила.


Ольга   (2005-08-01 16:11:00) [5]


> yyyy + mm + dd between @beg and @end

А тоже самое на T-SQL повторите? Формат даты на сервере может быть произвольный (подобные таблицы у N клиентов на N серверах).


Fay   (2005-08-01 15:59:00) [6]

where
 yyyy + mm + dd between @beg and @end
?


Наверх

Титульная страница Поиск, карта сайта Написать письмо