сравнение с DateTime

Jex
Дата: 15.01.2005 08:40:10
Ситуация такая в DataSet-е есть таблица table1, в этой таблице есть поле dt cс типом DateTime. Мне необходимо вибирать записи удовлетворяющие следующим условием:
1. Записи у которых dt<hh:mm (т.е. отфильтровать по времени вне зависимости от даты)
2. Записи у которых dt>hh:mm
3. Записи у которых dt<dd-mm-gggg
Время выполнения кричично. Чем быстрее тем лучше. Подскажите как проще выбрать поля по этим условиям.
DNV
Дата: 15.01.2005 14:24:10
хм.. по дате нет проблем
dim i as integer, DT as DataTable
//... заполняем DT
For Each R As DataRow In DT.Select("dt>'04/01/2004' ")  //формат dd/mm/yyyy
        i += 1
        Console.WriteLine(i & ") " & R("dt")) //результаты
Next

а вот со временем сложнее, т.к. я точно не знаю какие функции можно вводить в фильтр DT.Select(). например, методом тыка определил, что Substring можно, а вот Left, DateDif, Day и прочие нельзя

например такая конструкция работает
For Each R As DataRow In DT.Select("Substring(dt+'',12,5)>'20:10' ")  
но есть проблема при проверке, DT.Select возвращает время dt без ведущего нуля, поэтому '9:00' будет больше '20:00'
DNV
Дата: 15.01.2005 14:29:29
но если используешь SQL Server
тогда легче и быстрее сразу из базы доставать
например фильтр по времени, все, что после 21:15
select * from [table] where 
	      datepart(hh,dt)>21 
	OR (datepart(hh,dt)=21 AND datepart(n,dt)>15
Max Pro
Дата: 15.01.2005 23:56:46
Можно ещё через число Double. Перед точкой -дата, после точки - время.
:-)
Max Pro
Дата: 16.01.2005 00:02:42
Да и ещё - если не SELECT, то перекинь таблицу в двухмерный масив и в цикле прогони. Время будет очень быстрое.
Но желательно SELECT. Если база в Аксесе, то работают функции Day(), Year() и все другие Бэйсиковские. Если SQL-server, то там свои функции.
Max Pro