Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 При функцию типа MONTH в запросе к методу Select для DataTable  [new]
Vakho
Member

Откуда: ---------
Сообщений: 405
VisualStudio 2005 Pro, ADO.NET 2.0

Вот потребовалось извлечь из MyDataTable июньские записи. Даты хранятся в поле MyDate типа DateTime.
Ну, написал:

MyDataTable.Select("MONTH(MyDate)=6",......)

Запустил.
Получил в ответ: "The expression contains undefined function call MONTH()."

Что я сделал не так ?
Спасибо

PS. Поискал в MSDN перечень разрешенных функций для запросов к методу SELECT. В перечне про MONTH ни слова.
24 окт 12, 12:56    [13367983]     Ответить | Цитировать Сообщить модератору
 Re: При функцию типа MONTH в запросе к методу Select для DataTable  [new]
bazile
Member

Откуда:
Сообщений: 3082
Vakho, описание синтаксиса для выражения передаваемого в Select() смотри в DataColumn.Expression. Метода MONTH там нет. Чтобы отфильтровать по дате можно использовать операторы сравнения (формат даты mm/dd/yyyy):
MyDataTable.Select("MyDate >= #6/1/2012# AND MyDate <= #6/30/2012#",......)

Если год неизвестен, то лучше будет при запросе из БД положить номер месяца в отдельную колонку и фильтровать по ней.
24 окт 12, 13:13    [13368137]     Ответить | Цитировать Сообщить модератору
 Re: При функцию типа MONTH в запросе к методу Select для DataTable  [new]
Vakho
Member

Откуда: ---------
Сообщений: 405
bazile
... Метода MONTH там нет. ...


<:-(
24 окт 12, 13:25    [13368214]     Ответить | Цитировать Сообщить модератору
 Re: При функцию типа MONTH в запросе к методу Select для DataTable  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
MyDataTable.Locale = new CultureInfo("ru-RU");
int month = 10;
string filter = string.Format("Convert(MyDate, 'System.String') LIKE '*.{0}.*'", month);
var rows = MyDataTable.Select(filter);
24 окт 12, 13:32    [13368262]     Ответить | Цитировать Сообщить модератору
 Re: При функцию типа MONTH в запросе к методу Select для DataTable  [new]
Vakho
Member

Откуда: ---------
Сообщений: 405
bazile,

Кстати, функции ABS там тоже нет, однако программа, в которой я ее использовал, работает.
24 окт 12, 13:37    [13368298]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить