![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Формирование запроса к таблице с ненормальной датой [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
?