Как сделать запрос (MS SQL Server 2000) для выборки данных по полю типа DATATIME ТОЛЬКО по времени (не учитывая даты), например с 19:02:46 по 20:01:32 ...
Searching crypt... XOR X, Y // X != Y
Здравствуйте, DAK_NANO, Вы писали:
DAK>Как сделать запрос (MS SQL Server 2000) для выборки данных по полю типа DATATIME ТОЛЬКО по времени (не учитывая даты), например с 19:02:46 по 20:01:32 ...
В общем случае можно преобразовать датту с помощю ф-ции CONVERT
SELECT * FROM <tbl> WHERE CONVERT(varchar(10), date, 108) BETWEEN '19:02:46' AND '20:01:32'
Но такой вариант будет подтормаживать, если данных много, так как тратится время на конвертацию и индексы не здесь используются...
Так что надо искать другие пути, либо хранить дату и время отдельно, либо подставлять дату в условие ко времени, либо что-то еще придумывать.
Здравствуйте, DAK_NANO, Вы писали:
DAK>Как сделать запрос (MS SQL Server 2000) для выборки данных по полю типа DATATIME ТОЛЬКО по времени (не учитывая даты), например с 19:02:46 по 20:01:32 ...
Так как MS SQL Server 2000 хранит время(часы,минуты...) как долю дней, то выборка будет тормозить...
Лучше копировать в int время — часы*3600 + минуты*60 + секунды,
и перед запросом сравнивать с [часы*3600 + минуты*60 + секунды]
будет быстрее
Здравствуйте, DAK_NANO, Вы писали:
DAK>Как сделать запрос (MS SQL Server 2000) для выборки данных по полю типа DATATIME ТОЛЬКО по времени (не учитывая даты), например с 19:02:46 по 20:01:32 ...
Посмотри это:
http://www.rsdn.ru/Forum/Message.aspx?mid=95943Автор: Flamer
Дата: 05.09.02
и это
http://www.rsdn.ru/Forum/Message.aspx?mid=95970Автор: Flamer
Дата: 05.09.02
Может, поможет чем...