powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / сравнение с DateTime
5 сообщений из 5, страница 1 из 1
сравнение с DateTime
    #32866144
Jex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Jex
Гость
Ситуация такая в DataSet-е есть таблица table1, в этой таблице есть поле dt cс типом DateTime. Мне необходимо вибирать записи удовлетворяющие следующим условием:
1. Записи у которых dt<hh:mm (т.е. отфильтровать по времени вне зависимости от даты)
2. Записи у которых dt>hh:mm
3. Записи у которых dt<dd-mm-gggg
Время выполнения кричично. Чем быстрее тем лучше. Подскажите как проще выбрать поля по этим условиям.
...
Рейтинг: 0 / 0
сравнение с DateTime
    #32866311
DNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм.. по дате нет проблем
Код: plaintext
1.
2.
3.
4.
5.
6.
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 и прочие нельзя

например такая конструкция работает
Код: plaintext
1.
For Each R As DataRow In DT.Select("Substring(dt+'',12,5)>'20:10' ")  
но есть проблема при проверке, DT.Select возвращает время dt без ведущего нуля, поэтому '9:00' будет больше '20:00'
...
Рейтинг: 0 / 0
сравнение с DateTime
    #32866318
DNV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но если используешь SQL Server
тогда легче и быстрее сразу из базы доставать
например фильтр по времени, все, что после 21:15
Код: plaintext
1.
2.
3.
select * from [table] where 
	      datepart(hh,dt)> 21  
	OR (datepart(hh,dt)= 21  AND datepart(n,dt)> 15 
...
Рейтинг: 0 / 0
сравнение с DateTime
    #32866572
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно ещё через число Double. Перед точкой -дата, после точки - время.
:-)
...
Рейтинг: 0 / 0
сравнение с DateTime
    #32866575
Фотография Max Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и ещё - если не SELECT, то перекинь таблицу в двухмерный масив и в цикле прогони. Время будет очень быстрое.
Но желательно SELECT. Если база в Аксесе, то работают функции Day(), Year() и все другие Бэйсиковские. Если SQL-server, то там свои функции.
Max Pro
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / сравнение с DateTime
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]