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

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

Вопрос по выборке с датами MSSQL


Страницы:   1 2

kserg@ukr.net ©   (2002-05-13 19:31:00) 

в таблице есть поле dat1 - тип SmallDateTime

dat1
06.05.02
11.05.02
12.05.02
12.05.02 08:00:00
13.05.02

Мне надо выбрать все даты с 6 по 12 мая

След.запрос выбирает всё, кроме 12.05.02 08:00:00
SELECT * FROM Table WHERE dat1 BETWEEN "06.05.02" AND "12.05.02"

!!НО - меняю на
SELECT * FROM Table WHERE dat1 BETWEEN "06.05.02" AND "13.05.02"
запись 12.05.02 08:00:00 выбирается тоже,
и вместе с этим выбирается и 13-е число.

Так понимаю, что всю малину портят часы:минуты.
Как объехать?


Delirium   (2002-05-13 19:56:00) [21]

Я делаю так:

select * from dDate between "20020502" and "20020502 23:59:59"


kserg@ukr.net   (2002-05-13 19:50:00) [22]

Вот в ходе обсуждения хочу уточнить вопрос:
как в запросе работать только с "чистой" датой?
т.е. откинуть составляющую времени


kserg@ukr.net   (2002-05-13 19:47:00) [23]

>icu (13.05.02 19:36)
Уважаемый, если правильно понял, вы предлагаете реализацию запроса из ДЕЛФей.

Я всегда отрабатываю запросы в SQLServer Manager.
Там и заметил столь странный для меня рез-т.

Попробовал тупо
...WHERE Dat1 BETWEEN CAST("06.05.02" AS smalldatetime)
AND CAST("12.05.02" AS smalldatetime)
рез-т тотже - запись 12.05.02 08:00:00 не выбирается.


icu   (2002-05-13 19:36:00) [24]

SELECT * FROM Table WHERE dat1 <= :dateto AND dat1 >= :datefrom

что-то типа этого. Дата - это простой Double. То есть число дней прошедших с 12/30/1899. Вот и все. А сейчас ты с ней как со строкой работаешь.


Страницы:   1 2

Наверх

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